diff --git a/internal/operations/fsutil.go b/internal/fs/fsutil.go similarity index 92% rename from internal/operations/fsutil.go rename to internal/fs/fsutil.go index 94ed3d19..5f46cb7c 100644 --- a/internal/operations/fsutil.go +++ b/internal/fs/fsutil.go @@ -1,4 +1,4 @@ -package operations +package fs import ( "github.com/alist-org/alist/v3/internal/driver" diff --git a/internal/fs/get.go b/internal/fs/get.go new file mode 100644 index 00000000..f6274b3a --- /dev/null +++ b/internal/fs/get.go @@ -0,0 +1,16 @@ +package fs + +import ( + "context" + "github.com/alist-org/alist/v3/internal/driver" + "github.com/alist-org/alist/v3/internal/operations" + "github.com/pkg/errors" +) + +func Get(ctx context.Context, path string) (driver.FileInfo, error) { + account, actualPath, err := operations.GetAccountAndActualPath(path) + if err != nil { + return nil, errors.WithMessage(err, "failed get account") + } + return account.File(ctx, actualPath) +} diff --git a/internal/operations/fs.go b/internal/fs/list.go similarity index 71% rename from internal/operations/fs.go rename to internal/fs/list.go index c1089caf..369b3c6d 100644 --- a/internal/operations/fs.go +++ b/internal/fs/list.go @@ -1,15 +1,20 @@ -package operations +package fs import ( "context" "github.com/alist-org/alist/v3/internal/driver" + "github.com/alist-org/alist/v3/internal/operations" "github.com/pkg/errors" log "github.com/sirupsen/logrus" ) +// List files +// TODO: hide +// TODO: sort +// TODO: cache, and prevent cache breakdown func List(ctx context.Context, path string) ([]driver.FileInfo, error) { - account, actualPath, err := GetAccountAndActualPath(path) - virtualFiles := GetAccountVirtualFilesByPath(path) + account, actualPath, err := operations.GetAccountAndActualPath(path) + virtualFiles := operations.GetAccountVirtualFilesByPath(path) if err != nil { if len(virtualFiles) != 0 { return virtualFiles, nil