HeaderCollection UploadPartCopyRequest::specialHeaders()

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;
}