(ctx context.Context, bucketName, bucketPath string, uploadID string)
| 319 | } |
| 320 | |
| 321 | func (f *Fs) listMultipartUploadParts(ctx context.Context, bucketName, bucketPath string, uploadID string) ( |
| 322 | uploadedParts map[int]objectstorage.MultipartUploadPartSummary, err error) { |
| 323 | uploadedParts = make(map[int]objectstorage.MultipartUploadPartSummary) |
| 324 | req := objectstorage.ListMultipartUploadPartsRequest{ |
| 325 | NamespaceName: common.String(f.opt.Namespace), |
| 326 | BucketName: common.String(bucketName), |
| 327 | ObjectName: common.String(bucketPath), |
| 328 | UploadId: common.String(uploadID), |
| 329 | Limit: common.Int(1000), |
| 330 | } |
| 331 | |
| 332 | var response objectstorage.ListMultipartUploadPartsResponse |
| 333 | for { |
| 334 | err = f.pacer.Call(func() (bool, error) { |
| 335 | response, err = f.srv.ListMultipartUploadParts(ctx, req) |
| 336 | return shouldRetry(ctx, response.HTTPResponse(), err) |
| 337 | }) |
| 338 | if err != nil { |
| 339 | return uploadedParts, err |
| 340 | } |
| 341 | for _, item := range response.Items { |
| 342 | uploadedParts[*item.PartNumber] = item |
| 343 | } |
| 344 | if response.OpcNextPage == nil { |
| 345 | break |
| 346 | } |
| 347 | req.Page = response.OpcNextPage |
| 348 | } |
| 349 | return uploadedParts, nil |
| 350 | } |
| 351 | |
| 352 | func (f *Fs) restore(ctx context.Context, opt map[string]string) (any, error) { |
| 353 | req := objectstorage.RestoreObjectsRequest{ |
no test coverage detected