mirror of
https://github.com/minio/minio.git
synced 2025-02-03 09:55:59 -05:00
Support iterating through ListObjectParts using NextPartNumberMarker, closes #4284
This commit is contained in:
parent
4430085981
commit
c63cdca11f
@ -697,20 +697,22 @@ func (l *gcsGateway) PutObjectPart(bucket string, key string, uploadID string, p
|
||||
|
||||
// ListObjectParts returns all object parts for specified object in specified bucket
|
||||
func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string, partNumberMarker int, maxParts int) (ListPartsInfo, error) {
|
||||
// TODO: support partNumberMarker
|
||||
|
||||
prefix := fmt.Sprintf("%s/multipart-%s-%s", ZZZZMinioPrefix, key, uploadID)
|
||||
prefix := ""
|
||||
delimiter := "/"
|
||||
|
||||
it := l.client.Bucket(bucket).Objects(l.ctx, &storage.Query{Delimiter: delimiter, Prefix: prefix, Versions: false})
|
||||
|
||||
isTruncated := false
|
||||
|
||||
it.PageInfo().Token = toGCSMultipartKey(key, uploadID, partNumberMarker)
|
||||
it.PageInfo().MaxSize = maxParts
|
||||
|
||||
nextPartnumberMarker := 0
|
||||
|
||||
parts := []PartInfo{}
|
||||
for {
|
||||
if maxParts <= len(parts) {
|
||||
if len(parts) >= maxParts {
|
||||
isTruncated = true
|
||||
// nextMarker = it.PageInfo().Token
|
||||
break
|
||||
}
|
||||
|
||||
@ -736,6 +738,8 @@ func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string,
|
||||
continue
|
||||
}
|
||||
|
||||
nextPartnumberMarker = partID
|
||||
|
||||
parts = append(parts, PartInfo{
|
||||
PartNumber: partID,
|
||||
LastModified: attrs.Updated,
|
||||
@ -746,6 +750,7 @@ func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string,
|
||||
|
||||
return ListPartsInfo{
|
||||
IsTruncated: isTruncated,
|
||||
NextPartNumberMarker: nextPartnumberMarker,
|
||||
Parts: parts,
|
||||
}, nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user