internal void Populate(IDictionary <string, string> headers) { var copyHeaderValue = OssUtils.BuildCopyObjectSource(SourceBucketName, SourceKey); if (!string.IsNullOrEmpty(SourceVersionId)) { copyHeaderValue = copyHeaderValue + "?versionId=" + SourceVersionId; } headers.Add(OssHeaders.CopyObjectSource, copyHeaderValue); if (ModifiedSinceConstraint != null) { headers.Add(OssHeaders.CopySourceIfModifedSince, DateUtils.FormatRfc822Date(ModifiedSinceConstraint.Value)); } if (UnmodifiedSinceConstraint != null) { headers.Add(OssHeaders.CopySourceIfUnmodifiedSince, DateUtils.FormatRfc822Date(UnmodifiedSinceConstraint.Value)); } if (_matchingETagConstraints.Count > 0) { headers.Add(OssHeaders.CopySourceIfMatch, OssUtils.JoinETag(_matchingETagConstraints)); } if (_nonmatchingETagConstraints.Count > 0) { headers.Add(OssHeaders.CopySourceIfNoneMatch, OssUtils.JoinETag(_nonmatchingETagConstraints)); } if (NewObjectMetadata != null) { headers.Add(OssHeaders.CopyObjectMetaDataDirective, "REPLACE"); NewObjectMetadata.Populate(headers); } // Remove Content-Length header, ObjectMeta#Populate will create // ContentLength header, but we do not need it for the request body is empty. headers.Remove(HttpHeaders.ContentLength); if (RequestPayer == RequestPayer.Requester) { headers.Add(OssHeaders.OssRequestPayer, RequestPayer.Requester.ToString().ToLowerInvariant()); } if (TrafficLimit > 0) { headers.Add(OssHeaders.OssTrafficLimit, TrafficLimit.ToString()); } }
internal void Populate(IDictionary <string, string> headers) { var copyHeaderValue = OssUtils.BuildCopyObjectSource(SourceBucketName, SourceKey); headers.Add(OssHeaders.CopyObjectSource, copyHeaderValue); if (ModifiedSinceConstraint != null) { headers.Add(OssHeaders.CopySourceIfModifedSince, DateUtils.FormatRfc822Date(ModifiedSinceConstraint.Value)); } if (UnmodifiedSinceConstraint != null) { headers.Add(OssHeaders.CopySourceIfUnmodifiedSince, DateUtils.FormatRfc822Date(UnmodifiedSinceConstraint.Value)); } if (_matchingETagConstraints.Count > 0) { headers.Add(OssHeaders.CopySourceIfMatch, OssUtils.JoinETag(_matchingETagConstraints)); } if (_nonmatchingETagConstraints.Count > 0) { headers.Add(OssHeaders.CopySourceIfNoneMatch, OssUtils.JoinETag(_nonmatchingETagConstraints)); } if (NewObjectMetaData != null) { headers.Add(OssHeaders.CopyObjectMetaDataDirective, "REPLACE"); NewObjectMetaData.Populate(headers); } else if (NewObjectMetadata != null) { headers.Add(OssHeaders.CopyObjectMetaDataDirective, "REPLACE"); NewObjectMetadata.Populate(headers); } // Remove Content-Length header, ObjectMeta#Populate will create // ContentLength header, but we do not need it for the request body is empty. headers.Remove(HttpHeaders.ContentLength); }