aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/s3api_objects_list_handlers.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go
index 65a176617..c1dbafefe 100644
--- a/weed/s3api/s3api_objects_list_handlers.go
+++ b/weed/s3api/s3api_objects_list_handlers.go
@@ -18,6 +18,8 @@ import (
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
)
+const cutoffTimeNewEmptyDir = 3
+
type ListBucketResultV2 struct {
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult"`
Name string `xml:"Name"`
@@ -407,11 +409,16 @@ func (s3a *S3ApiServer) ensureDirectoryAllEmpty(filerClient filer_pb.SeaweedFile
var startFrom string
var isExhausted bool
var foundEntry bool
+ cutOffTimeAtSec := time.Now().Unix() + cutoffTimeNewEmptyDir
for fileCounter == 0 && !isExhausted && err == nil {
err = filer_pb.SeaweedList(filerClient, currentDir, "", func(entry *filer_pb.Entry, isLast bool) error {
foundEntry = true
if entry.IsDirectory {
- subDirs = append(subDirs, entry.Name)
+ if entry.Attributes != nil && cutOffTimeAtSec >= entry.Attributes.GetCrtime() {
+ fileCounter++
+ } else {
+ subDirs = append(subDirs, entry.Name)
+ }
} else {
fileCounter++
}