mirror of
https://github.com/minio/minio.git
synced 2025-07-08 16:42:17 -04: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
|
// 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) {
|
func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string, partNumberMarker int, maxParts int) (ListPartsInfo, error) {
|
||||||
// TODO: support partNumberMarker
|
prefix := ""
|
||||||
|
|
||||||
prefix := fmt.Sprintf("%s/multipart-%s-%s", ZZZZMinioPrefix, key, uploadID)
|
|
||||||
delimiter := "/"
|
delimiter := "/"
|
||||||
|
|
||||||
it := l.client.Bucket(bucket).Objects(l.ctx, &storage.Query{Delimiter: delimiter, Prefix: prefix, Versions: false})
|
it := l.client.Bucket(bucket).Objects(l.ctx, &storage.Query{Delimiter: delimiter, Prefix: prefix, Versions: false})
|
||||||
|
|
||||||
isTruncated := false
|
isTruncated := false
|
||||||
|
|
||||||
|
it.PageInfo().Token = toGCSMultipartKey(key, uploadID, partNumberMarker)
|
||||||
|
it.PageInfo().MaxSize = maxParts
|
||||||
|
|
||||||
|
nextPartnumberMarker := 0
|
||||||
|
|
||||||
parts := []PartInfo{}
|
parts := []PartInfo{}
|
||||||
for {
|
for {
|
||||||
if maxParts <= len(parts) {
|
if len(parts) >= maxParts {
|
||||||
isTruncated = true
|
isTruncated = true
|
||||||
// nextMarker = it.PageInfo().Token
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -736,6 +738,8 @@ func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string,
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nextPartnumberMarker = partID
|
||||||
|
|
||||||
parts = append(parts, PartInfo{
|
parts = append(parts, PartInfo{
|
||||||
PartNumber: partID,
|
PartNumber: partID,
|
||||||
LastModified: attrs.Updated,
|
LastModified: attrs.Updated,
|
||||||
@ -745,8 +749,9 @@ func (l *gcsGateway) ListObjectParts(bucket string, key string, uploadID string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
return ListPartsInfo{
|
return ListPartsInfo{
|
||||||
IsTruncated: isTruncated,
|
IsTruncated: isTruncated,
|
||||||
Parts: parts,
|
NextPartNumberMarker: nextPartnumberMarker,
|
||||||
|
Parts: parts,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user