commit
						d80a17d8e0
					
				|  | @ -970,8 +970,19 @@ func (d *driver) doWalk(parentCtx context.Context, objectCount *int64, path, pre | ||||||
| 	defer done("s3aws.ListObjectsV2Pages(%s)", path) | 	defer done("s3aws.ListObjectsV2Pages(%s)", path) | ||||||
| 	listObjectErr := d.S3.ListObjectsV2PagesWithContext(ctx, listObjectsInput, func(objects *s3.ListObjectsV2Output, lastPage bool) bool { | 	listObjectErr := d.S3.ListObjectsV2PagesWithContext(ctx, listObjectsInput, func(objects *s3.ListObjectsV2Output, lastPage bool) bool { | ||||||
| 
 | 
 | ||||||
| 		*objectCount += *objects.KeyCount | 		var count int64 | ||||||
| 		walkInfos := make([]walkInfoContainer, 0, *objects.KeyCount) | 		// KeyCount was introduced with version 2 of the GET Bucket operation in S3.
 | ||||||
|  | 		// Some S3 implementations don't support V2 now, so we fall back to manual
 | ||||||
|  | 		// calculation of the key count if required
 | ||||||
|  | 		if objects.KeyCount != nil { | ||||||
|  | 			count = *objects.KeyCount | ||||||
|  | 			*objectCount += *objects.KeyCount | ||||||
|  | 		} else { | ||||||
|  | 			count = int64(len(objects.Contents) + len(objects.CommonPrefixes)) | ||||||
|  | 			*objectCount += count | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		walkInfos := make([]walkInfoContainer, 0, count) | ||||||
| 
 | 
 | ||||||
| 		for _, dir := range objects.CommonPrefixes { | 		for _, dir := range objects.CommonPrefixes { | ||||||
| 			commonPrefix := *dir.Prefix | 			commonPrefix := *dir.Prefix | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue