From ef94f99667ae04e7f9df868663a4c8f4f1e98dbd Mon Sep 17 00:00:00 2001 From: afengsoft <82697512@qq.com> Date: Thu, 15 Sep 2022 18:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E9=80=9A=E8=BF=87re?= =?UTF-8?q?quest.MetaData().addHeader=E8=AE=BE=E7=BD=AE=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E5=A4=B4=E5=90=8Eput=E6=97=B6=E6=97=A0=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alibabacloud/oss/model/UploadPartRequest.h | 4 +++- sdk/src/model/UploadPartRequest.cc | 11 +++++++---- sdk/src/resumable/ResumableUploader.cc | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/sdk/include/alibabacloud/oss/model/UploadPartRequest.h b/sdk/include/alibabacloud/oss/model/UploadPartRequest.h index 1ebf02f..be6714a 100644 --- a/sdk/include/alibabacloud/oss/model/UploadPartRequest.h +++ b/sdk/include/alibabacloud/oss/model/UploadPartRequest.h @@ -17,6 +17,7 @@ #pragma once #include #include +#include #include #include @@ -32,7 +33,7 @@ namespace OSS const std::shared_ptr& content); UploadPartRequest(const std::string &bucket, const std::string& key, int partNumber, const std::string& uploadId, - const std::shared_ptr& content); + const std::shared_ptr& content, const ObjectMetaData& metaData); virtual std::shared_ptr Body() const; void setPartNumber(int partNumber); void setUploadId(const std::string& uploadId); @@ -57,6 +58,7 @@ namespace OSS std::string userAgent_; std::string contentMd5_; bool contentMd5IsSet_; + ObjectMetaData metaData_; }; } } diff --git a/sdk/src/model/UploadPartRequest.cc b/sdk/src/model/UploadPartRequest.cc index 32fdb04..7bc3be4 100644 --- a/sdk/src/model/UploadPartRequest.cc +++ b/sdk/src/model/UploadPartRequest.cc @@ -23,13 +23,13 @@ using namespace AlibabaCloud::OSS; UploadPartRequest::UploadPartRequest(const std::string &bucket, const std::string &key, const std::shared_ptr &content) : - UploadPartRequest(bucket, key, 0, "", content) + UploadPartRequest(bucket, key, 0, "", content, ObjectMetaData()) { } UploadPartRequest::UploadPartRequest(const std::string &bucket, const std::string &key, int partNumber, const std::string &uploadId, - const std::shared_ptr &content) : + const std::shared_ptr &content, const ObjectMetaData& metaData) : OssObjectRequest(bucket, key), partNumber_(partNumber), uploadId_(uploadId), @@ -37,7 +37,8 @@ UploadPartRequest::UploadPartRequest(const std::string &bucket, const std::strin contentLengthIsSet_(false), trafficLimit_(0), userAgent_(), - contentMd5IsSet_(false) + contentMd5IsSet_(false), + metaData_(metaData) { setFlags(Flags() | REQUEST_FLAG_CHECK_CRC64); } @@ -96,7 +97,9 @@ std::shared_ptr UploadPartRequest::Body() const HeaderCollection UploadPartRequest::specialHeaders() const { - auto headers = OssObjectRequest::specialHeaders(); + auto headers = metaData_.toHeaderCollection(); + auto baseHeaders = OssObjectRequest::specialHeaders(); + headers.insert(baseHeaders.begin(), baseHeaders.end()); headers[Http::CONTENT_TYPE] = ""; if (contentLengthIsSet_) { headers[Http::CONTENT_LENGTH] = std::to_string(contentLength_); diff --git a/sdk/src/resumable/ResumableUploader.cc b/sdk/src/resumable/ResumableUploader.cc index 030f940..e6e3ece 100644 --- a/sdk/src/resumable/ResumableUploader.cc +++ b/sdk/src/resumable/ResumableUploader.cc @@ -102,7 +102,7 @@ PutObjectOutcome ResumableUploader::Upload() std::ios::in | std::ios::binary); content->seekg(offset, content->beg); - UploadPartRequest uploadPartRequest(request_.Bucket(), request_.Key(), part.PartNumber(), uploadID_, content); + UploadPartRequest uploadPartRequest(request_.Bucket(), request_.Key(), part.PartNumber(), uploadID_, content, request_.MetaData()); uploadPartRequest.setContentLength(length); UploaderTransferState transferState;