@ -146,8 +146,10 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m
// check filer
// check filer
err = s3a . WithFilerClient ( false , func ( client filer_pb . SeaweedFilerClient ) error {
err = s3a . WithFilerClient ( false , func ( client filer_pb . SeaweedFilerClient ) error {
for {
empty := true
nextMarker , doErr = s3a . doListFilerEntries ( client , reqDir , prefix , cursor , marker , delimiter , false , func ( dir string , entry * filer_pb . Entry ) {
nextMarker , doErr = s3a . doListFilerEntries ( client , reqDir , prefix , cursor , marker , delimiter , false , func ( dir string , entry * filer_pb . Entry ) {
empty = false
if entry . IsDirectory {
if entry . IsDirectory {
// https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
// https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
if delimiter == "/" { // A response can contain CommonPrefixes only if you specify a delimiter.
if delimiter == "/" { // A response can contain CommonPrefixes only if you specify a delimiter.
@ -192,12 +194,18 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m
return doErr
return doErr
}
}
if ! cursor . isTruncated {
nextMarker = ""
} else {
if cursor . isTruncated {
if requestDir != "" {
if requestDir != "" {
nextMarker = requestDir + "/" + nextMarker
nextMarker = requestDir + "/" + nextMarker
}
}
break
} else if empty {
nextMarker = ""
break
} else {
// start next loop
marker = nextMarker
}
}
}
response = ListBucketResult {
response = ListBucketResult {