fix: skip 0kb placeholder object as directory in file listing (#3347)

This commit is contained in:
Darren Yu
2026-03-12 14:12:54 +08:00
committed by GitHub
parent 0f2f35d7d4
commit 50017060f1
6 changed files with 22 additions and 7 deletions

View File

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

View File

@@ -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

View File

@@ -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 {

View File

@@ -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

View File

@@ -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

View File

@@ -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 打开文件