public void Transfer(TransferStrategyOptions transferStrategyOptions) { var response = transferStrategyOptions.Client.GetObject(new GetObjectRequest( transferStrategyOptions.BucketName, transferStrategyOptions.ObjectName, transferStrategyOptions.Stream, transferStrategyOptions.JobId, transferStrategyOptions.BlobOffset)); if (transferStrategyOptions.BlobOffset == 0) { transferStrategyOptions.MetadataListener?.Invoke(transferStrategyOptions.ObjectName, MetadataUtils.GetUriUnEscapeMetadata(response.Metadata)); } }
public void Transfer(TransferStrategyOptions transferStrategyOptions) { var currentTry = 0; while (true) { var request = new PutObjectRequest(transferStrategyOptions.BucketName, transferStrategyOptions.ObjectName, transferStrategyOptions.Stream) .WithJob(transferStrategyOptions.JobId) .WithOffset(transferStrategyOptions.BlobOffset); if (transferStrategyOptions.BlobOffset == 0 && transferStrategyOptions.MetadataAccess != null) { request.WithMetadata(MetadataUtils.GetUriEscapeMetadata(transferStrategyOptions.MetadataAccess.GetMetadataValue(transferStrategyOptions.ObjectName))); } if (transferStrategyOptions.Checksum != null) { request.WithChecksum(transferStrategyOptions.Checksum, transferStrategyOptions.ChecksumType); } try { transferStrategyOptions.Client.PutObject(request); return; } catch (Exception ex) { if (ExceptionClassifier.IsRecoverableException(ex)) { BestEffort.ModifyForRetry(transferStrategyOptions.Stream, transferStrategyOptions.ObjectTransferAttempts, ref currentTry, request.ObjectName, request.Offset.Value, ex); } else { throw; } } } }