diff --git a/pkg/filemanager/driver/cos/cos.go b/pkg/filemanager/driver/cos/cos.go index cde8cbed..1f66e7cf 100644 --- a/pkg/filemanager/driver/cos/cos.go +++ b/pkg/filemanager/driver/cos/cos.go @@ -138,7 +138,6 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. } // 是否为递归列出 - if !recursive { opt.Delimiter = "/" } @@ -172,8 +171,8 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理列取结果 res := make([]fs.PhysicalObject, 0, len(objects)+len(commons)) - // 处理目录 + // 处理目录 for _, object := range commons { rel, err := filepath.Rel(opt.Prefix, object) if err != nil { @@ -191,8 +190,10 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. onProgress(len(commons)) // 处理文件 - for _, object := range objects { + if strings.HasSuffix(object.Key, "/") && object.Size == 0 { + continue + } rel, err := filepath.Rel(opt.Prefix, object.Key) if err != nil { handler.l.Warning("Failed to get relative path: %s", err) diff --git a/pkg/filemanager/driver/ks3/ks3.go b/pkg/filemanager/driver/ks3/ks3.go index 10f190e2..4e1d71c4 100644 --- a/pkg/filemanager/driver/ks3/ks3.go +++ b/pkg/filemanager/driver/ks3/ks3.go @@ -174,6 +174,9 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理文件 for _, object := range objects { + if strings.HasSuffix(*object.Key, "/") && *object.Size == 0 { + continue + } rel, err := filepath.Rel(*opt.Prefix, *object.Key) if err != nil { continue diff --git a/pkg/filemanager/driver/obs/obs.go b/pkg/filemanager/driver/obs/obs.go index a9fc9137..97c68622 100644 --- a/pkg/filemanager/driver/obs/obs.go +++ b/pkg/filemanager/driver/obs/obs.go @@ -149,8 +149,8 @@ func (d *Driver) List(ctx context.Context, base string, onProgress driver.ListPr // 处理列取结果 res := make([]fs.PhysicalObject, 0, len(objects)+len(commons)) - // 处理目录 + // 处理目录 for _, object := range commons { rel, err := filepath.Rel(opt.Prefix, object) if err != nil { @@ -168,8 +168,10 @@ func (d *Driver) List(ctx context.Context, base string, onProgress driver.ListPr onProgress(len(commons)) // 处理文件 - for _, object := range objects { + if strings.HasSuffix(object.Key, "/") && object.Size == 0 { + continue + } rel, err := filepath.Rel(opt.Prefix, object.Key) if err != nil { d.l.Warning("Failed to get relative path: %s", err) @@ -187,7 +189,6 @@ func (d *Driver) List(ctx context.Context, base string, onProgress driver.ListPr onProgress(len(res)) return res, nil - } func (d *Driver) Put(ctx context.Context, file *fs.UploadRequest) error { diff --git a/pkg/filemanager/driver/oss/oss.go b/pkg/filemanager/driver/oss/oss.go index b6c17471..1b382533 100644 --- a/pkg/filemanager/driver/oss/oss.go +++ b/pkg/filemanager/driver/oss/oss.go @@ -192,6 +192,7 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理列取结果 res := make([]fs.PhysicalObject, 0, len(objects)+len(commons)) + // 处理目录 for _, object := range commons { rel, err := filepath.Rel(base, *object.Prefix) @@ -210,6 +211,9 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理文件 for _, object := range objects { + if strings.HasSuffix(*object.Key, "/") && object.Size == 0 { + continue + } rel, err := filepath.Rel(base, *object.Key) if err != nil { continue diff --git a/pkg/filemanager/driver/qiniu/qiniu.go b/pkg/filemanager/driver/qiniu/qiniu.go index 40ec09d7..3039f296 100644 --- a/pkg/filemanager/driver/qiniu/qiniu.go +++ b/pkg/filemanager/driver/qiniu/qiniu.go @@ -122,6 +122,7 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理列取结果 res := make([]fs.PhysicalObject, 0, len(objects)+len(commons)) + // 处理目录 for _, object := range commons { rel, err := filepath.Rel(base, object) @@ -140,6 +141,9 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理文件 for _, object := range objects { + if strings.HasSuffix(object.Key, "/") && object.Fsize == 0 { + continue + } rel, err := filepath.Rel(base, object.Key) if err != nil { continue diff --git a/pkg/filemanager/driver/s3/s3.go b/pkg/filemanager/driver/s3/s3.go index 440e2708..66898e11 100644 --- a/pkg/filemanager/driver/s3/s3.go +++ b/pkg/filemanager/driver/s3/s3.go @@ -164,6 +164,9 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. // 处理文件 for _, object := range objects { + if strings.HasSuffix(*object.Key, "/") && *object.Size == 0 { + continue + } rel, err := filepath.Rel(*opt.Prefix, *object.Key) if err != nil { continue @@ -180,7 +183,6 @@ func (handler *Driver) List(ctx context.Context, base string, onProgress driver. onProgress(len(objects)) return res, nil - } // Open 打开文件