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) }