Просмотр исходного кода

S3: improve "directories" detection

Fixes #1097

Signed-off-by: Nicola Murino <[email protected]>
Nicola Murino 2 лет назад
Родитель
Сommit
49c8affcef
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      internal/vfs/s3fs.go

+ 4 - 0
internal/vfs/s3fs.go

@@ -165,6 +165,10 @@ func (fs *S3Fs) Stat(name string) (os.FileInfo, error) {
 		// Some S3 providers (like SeaweedFS) remove the trailing '/' from object keys.
 		// So we check some common content types to detect if this is a "directory".
 		isDir := util.Contains(s3DirMimeTypes, util.GetStringFromPointer(obj.ContentType))
+		if obj.ContentLength == 0 && !isDir {
+			_, err = fs.headObject(name + "/")
+			isDir = err == nil
+		}
 		return updateFileInfoModTime(fs.getStorageID(), name, NewFileInfo(name, isDir, obj.ContentLength,
 			util.GetTimeFromPointer(obj.LastModified), false))
 	}