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
18 #include <sstream>
19 #include <alibabacloud/oss/model/ListMultipartUploadsRequest.h>
20 #include "utils/Utils.h"
21 #include "ModelError.h"
22 #include <alibabacloud/oss/Const.h>
23
24 using namespace AlibabaCloud::OSS;
25 using std::stringstream;
26
ListMultipartUploadsRequest(const std::string & bucket)27 ListMultipartUploadsRequest::ListMultipartUploadsRequest(const std::string &bucket):
28 OssBucketRequest(bucket),
29 delimiterIsSet_(false),
30 keyMarkerIsSet_(false),
31 prefixIsSet_(false),
32 uploadIdMarkerIsSet_(false),
33 encodingTypeIsSet_(false),
34 maxUploadsIsSet_(false),
35 requestPayer_(RequestPayer::NotSet)
36 {
37 }
38
setDelimiter(const std::string & delimiter)39 void ListMultipartUploadsRequest::setDelimiter(const std::string &delimiter)
40 {
41 delimiter_ = delimiter;
42 delimiterIsSet_ = true;
43 }
44
setMaxUploads(uint32_t maxUploads)45 void ListMultipartUploadsRequest::setMaxUploads(uint32_t maxUploads)
46 {
47 maxUploads_ = maxUploads > MaxUploads ? MaxUploads : maxUploads;
48 maxUploadsIsSet_ = true;
49 }
50
setKeyMarker(const std::string & keyMarker)51 void ListMultipartUploadsRequest::setKeyMarker(const std::string &keyMarker)
52 {
53 keyMarker_ = keyMarker;
54 keyMarkerIsSet_ = true;
55 }
56
setPrefix(const std::string & prefix)57 void ListMultipartUploadsRequest::setPrefix(const std::string &prefix)
58 {
59 prefix_ = prefix;
60 prefixIsSet_ = true;
61 }
62
setUploadIdMarker(const std::string & uploadIdMarker)63 void ListMultipartUploadsRequest::setUploadIdMarker(const std::string &uploadIdMarker)
64 {
65 uploadIdMarker_ = uploadIdMarker;
66 uploadIdMarkerIsSet_ = true;
67 }
68
setEncodingType(const std::string & encodingType)69 void ListMultipartUploadsRequest::setEncodingType(const std::string &encodingType)
70 {
71 encodingType_ = encodingType;
72 encodingTypeIsSet_ = true;
73 }
74
setRequestPayer(RequestPayer value)75 void ListMultipartUploadsRequest::setRequestPayer(RequestPayer value)
76 {
77 requestPayer_ = value;
78 }
79
specialParameters() const80 ParameterCollection ListMultipartUploadsRequest::specialParameters() const
81 {
82 ParameterCollection parameters;
83 parameters["uploads"] = "";
84 if(delimiterIsSet_){
85 parameters["delimiter"] = delimiter_;
86 }
87
88 if (maxUploadsIsSet_) {
89 parameters["max-uploads"] = std::to_string(maxUploads_);
90 }
91
92 if(keyMarkerIsSet_){
93 parameters["key-marker"] = keyMarker_;
94 if (uploadIdMarkerIsSet_) {
95 parameters["upload-id-marker"] = uploadIdMarker_;
96 }
97 }
98
99 if(prefixIsSet_){
100 parameters["prefix"] = prefix_;
101 }
102
103 if(encodingTypeIsSet_){
104 parameters["encoding-type"] = encodingType_;
105 }
106 return parameters;
107 }
108
specialHeaders() const109 HeaderCollection ListMultipartUploadsRequest::specialHeaders() const
110 {
111 HeaderCollection headers;
112 if (requestPayer_ == RequestPayer::Requester) {
113 headers["x-oss-request-payer"] = ToLower(ToRequestPayerName(RequestPayer::Requester));
114 }
115 return headers;
116 }
117