sdk/src/model/DeleteObjectsRequest.cc (79 lines of code) (raw):
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/oss/model/DeleteObjectsRequest.h>
#include <sstream>
#include "../utils/Utils.h"
using namespace AlibabaCloud::OSS;
DeleteObjectsRequest::DeleteObjectsRequest(const std::string &bucket) :
OssBucketRequest(bucket),
quiet_(false),
encodingType_(),
requestPayer_(RequestPayer::NotSet)
{
setFlags(Flags() | REQUEST_FLAG_CONTENTMD5);
}
bool DeleteObjectsRequest::Quiet() const
{
return quiet_;
}
const std::string &DeleteObjectsRequest::EncodingType() const
{
return encodingType_;
}
const std::list<std::string> &DeleteObjectsRequest::KeyList() const
{
return keyList_;
}
void DeleteObjectsRequest::setQuiet(bool quiet)
{
quiet_ = quiet;
}
void DeleteObjectsRequest::setEncodingType(const std::string &value)
{
encodingType_ = value;
}
void DeleteObjectsRequest::addKey(const std::string &key)
{
keyList_.push_back(key);
}
void DeleteObjectsRequest::setKeyList(const DeletedKeyList &keyList)
{
keyList_ = keyList;
}
void DeleteObjectsRequest::clearKeyList()
{
keyList_.clear();
}
void DeleteObjectsRequest::setRequestPayer(RequestPayer value)
{
requestPayer_ = value;
}
std::string DeleteObjectsRequest::payload() const
{
std::stringstream ss;
ss << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << std::endl;
ss << "<Delete>" << std::endl;
ss << " <Quiet>" << (quiet_ ? "true":"false") << "</Quiet>" << std::endl;
for (auto const &key : keyList_) {
ss << " <Object>" << std::endl << "";
ss << " <Key>" << XmlEscape(key) << "</Key>" << std::endl;
ss << " </Object>" << std::endl;
}
ss << "</Delete>" << std::endl;
return ss.str();
}
ParameterCollection DeleteObjectsRequest::specialParameters() const
{
ParameterCollection parameters;
parameters["delete"] = "";
if (!encodingType_.empty()) {
parameters["encoding-type"] = encodingType_;
}
return parameters;
}
HeaderCollection DeleteObjectsRequest::specialHeaders() const
{
HeaderCollection headers;
if (requestPayer_ == RequestPayer::Requester) {
headers["x-oss-request-payer"] = ToLower(ToRequestPayerName(RequestPayer::Requester));
}
return headers;
}