in sdk/src/model/UploadPartCopyRequest.cc [163:203]
HeaderCollection UploadPartCopyRequest::specialHeaders() const
{
auto headers = OssObjectRequest::specialHeaders();
std::string source;
source.append("/").append(sourceBucket_).append("/").append(UrlEncode(sourceKey_));
if (!versionId_.empty()) {
source.append("?versionId=").append(versionId_);
}
headers["x-oss-copy-source"] = source;
if (sourceRangeIsSet_) {
std::string range("bytes=");
range.append(std::to_string(sourceRange_[0])).append("-");
if (sourceRange_[1] > 0){
range.append(std::to_string(sourceRange_[1]));
}
headers["x-oss-copy-source-range"] = range;
}
if(sourceIfMatchETagIsSet_) {
headers["x-oss-copy-source-if-match"] = sourceIfMatchETag_;
}
if(sourceIfNotMatchETagIsSet_) {
headers["x-oss-copy-source-if-none-match"] = sourceIfNotMatchETag_;
}
if(sourceIfModifiedSinceIsSet_) {
headers["x-oss-copy-source-if-modified-since"] = sourceIfModifiedSince_;
}
if (sourceIfUnModifiedSinceIsSet_) {
headers["x-oss-copy-source-if-unmodified-since"] = sourceIfUnModifiedSince_;
}
if (trafficLimit_ != 0) {
headers["x-oss-traffic-limit"] = std::to_string(trafficLimit_);
}
return headers;
}