|
package fs |
|
|
|
import ( |
|
"context" |
|
|
|
"github.com/alist-org/alist/v3/internal/errs" |
|
"github.com/alist-org/alist/v3/internal/model" |
|
"github.com/alist-org/alist/v3/internal/op" |
|
"github.com/pkg/errors" |
|
) |
|
|
|
func makeDir(ctx context.Context, path string, lazyCache ...bool) error { |
|
storage, actualPath, err := op.GetStorageAndActualPath(path) |
|
if err != nil { |
|
return errors.WithMessage(err, "failed get storage") |
|
} |
|
return op.MakeDir(ctx, storage, actualPath, lazyCache...) |
|
} |
|
|
|
func move(ctx context.Context, srcPath, dstDirPath string, lazyCache ...bool) error { |
|
srcStorage, srcActualPath, err := op.GetStorageAndActualPath(srcPath) |
|
if err != nil { |
|
return errors.WithMessage(err, "failed get src storage") |
|
} |
|
dstStorage, dstDirActualPath, err := op.GetStorageAndActualPath(dstDirPath) |
|
if err != nil { |
|
return errors.WithMessage(err, "failed get dst storage") |
|
} |
|
if srcStorage.GetStorage() != dstStorage.GetStorage() { |
|
return errors.WithStack(errs.MoveBetweenTwoStorages) |
|
} |
|
return op.Move(ctx, srcStorage, srcActualPath, dstDirActualPath, lazyCache...) |
|
} |
|
|
|
func rename(ctx context.Context, srcPath, dstName string, lazyCache ...bool) error { |
|
storage, srcActualPath, err := op.GetStorageAndActualPath(srcPath) |
|
if err != nil { |
|
return errors.WithMessage(err, "failed get storage") |
|
} |
|
return op.Rename(ctx, storage, srcActualPath, dstName, lazyCache...) |
|
} |
|
|
|
func remove(ctx context.Context, path string) error { |
|
storage, actualPath, err := op.GetStorageAndActualPath(path) |
|
if err != nil { |
|
return errors.WithMessage(err, "failed get storage") |
|
} |
|
return op.Remove(ctx, storage, actualPath) |
|
} |
|
|
|
func other(ctx context.Context, args model.FsOtherArgs) (interface{}, error) { |
|
storage, actualPath, err := op.GetStorageAndActualPath(args.Path) |
|
if err != nil { |
|
return nil, errors.WithMessage(err, "failed get storage") |
|
} |
|
args.Path = actualPath |
|
return op.Other(ctx, storage, args) |
|
} |
|
|