1 /* 2 * Copyright 2009-2017 Alibaba Cloud All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 #include <alibabacloud/oss/Export.h> 19 #include <alibabacloud/oss/Types.h> 20 #include <alibabacloud/oss/OssRequest.h> 21 #include <alibabacloud/oss/model/ObjectMetaData.h> 22 #include <iostream> 23 24 namespace AlibabaCloud 25 { 26 namespace OSS 27 { 28 class ALIBABACLOUD_OSS_EXPORT MultiCopyObjectRequest : public OssResumableBaseRequest 29 { 30 public: 31 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 32 const std::string& srcBucket, const std::string& srcKey); 33 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 34 const std::string& srcBucket, const std::string& srcKey, 35 const std::string& checkpointDir); 36 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 37 const std::string& srcBucket, const std::string& srcKey, 38 const std::string& checkpointDir, const ObjectMetaData& meta); 39 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 40 const std::string& srcBucket, const std::string& srcKey, 41 const std::string& checkpointDir, uint64_t partSize, uint32_t threadNum); 42 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 43 const std::string& srcBucket, const std::string& srcKey, 44 const std::string& checkpointDir, uint64_t partSize, uint32_t threadNum, 45 const ObjectMetaData& metaData); 46 47 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 48 const std::string& srcBucket, const std::string& srcKey, 49 const std::wstring& checkpointDir); 50 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 51 const std::string& srcBucket, const std::string& srcKey, 52 const std::wstring& checkpointDir, const ObjectMetaData& meta); 53 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 54 const std::string& srcBucket, const std::string& srcKey, 55 const std::wstring& checkpointDir, uint64_t partSize, uint32_t threadNum); 56 MultiCopyObjectRequest(const std::string& bucket, const std::string& key, 57 const std::string& srcBucket, const std::string& srcKey, 58 const std::wstring& checkpointDir, uint64_t partSize, uint32_t threadNum, 59 const ObjectMetaData& metaData); 60 SrcBucket()61 const std::string& SrcBucket() const { return srcBucket_; } SrcKey()62 const std::string& SrcKey() const { return srcKey_; } 63 EncodingType()64 const std::string& EncodingType() const { return encodingType_; } MetaData()65 const ObjectMetaData& MetaData() const { return metaData_; } 66 67 void setCopySource(const std::string& srcBucket, const std::string& srcObject); 68 void setSourceIfMatchEtag(const std::string& value); 69 void setSourceIfNotMatchEtag(const std::string& value); 70 void setSourceIfUnModifiedSince(const std::string& value); 71 void setSourceIfModifiedSince(const std::string& value); 72 void setMetadataDirective(const CopyActionList& action); 73 void setAcl(const CannedAccessControlList& acl); 74 setEncodingType(const std::string & type)75 void setEncodingType(const std::string& type) { encodingType_ = type; } 76 77 const std::string& SourceIfMatchEtag() const; 78 const std::string& SourceIfNotMatchEtag() const; 79 const std::string& SourceIfUnModifiedSince() const; 80 const std::string& SourceIfModifiedSince() const; 81 82 protected: 83 virtual int validate() const; 84 85 private: 86 std::string srcBucket_; 87 std::string srcKey_; 88 std::string encodingType_; 89 90 ObjectMetaData metaData_; 91 }; 92 } 93 }