Skip to content

Commit 2597567

Browse files
yi-liu9huiguangjun
authored andcommitted
support delete bucket tagging by key
1 parent 4d48b18 commit 2597567

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

sdk/include/alibabacloud/oss/model/DeleteBucketTaggingRequest.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#pragma once
1818
#include <alibabacloud/oss/Export.h>
1919
#include <alibabacloud/oss/OssRequest.h>
20+
#include <alibabacloud/oss/model/Tagging.h>
2021

2122
namespace AlibabaCloud
2223
{
@@ -26,8 +27,12 @@ namespace OSS
2627
{
2728
public:
2829
DeleteBucketTaggingRequest(const std::string& bucket);
30+
void setTagging(const Tagging& tagging);
31+
2932
protected:
3033
virtual ParameterCollection specialParameters() const;
34+
private:
35+
Tagging tagging_;
3136
};
3237
}
3338
}

sdk/src/model/DeleteBucketTaggingRequest.cc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,22 @@ DeleteBucketTaggingRequest::DeleteBucketTaggingRequest(const std::string& bucket
2323
{
2424
}
2525

26+
void DeleteBucketTaggingRequest::setTagging(const Tagging& tagging)
27+
{
28+
tagging_ = tagging;
29+
}
30+
2631
ParameterCollection DeleteBucketTaggingRequest::specialParameters() const
2732
{
2833
ParameterCollection parameters;
29-
parameters["tagging"] = "";
34+
std::string str;
35+
for (const Tag& tag : tagging_.Tags())
36+
{
37+
if (!str.empty())
38+
str += ",";
39+
str += tag.Key();
40+
}
41+
parameters["tagging"] = str;
3042
return parameters;
3143
}
3244

test/src/Bucket/BucketTaggingtTest.cc

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,5 +254,42 @@ namespace OSS
254254
auto getoutcome = Client->GetBucketTagging(GetBucketTaggingRequest("INVALIDNAME"));
255255
EXPECT_EQ(getoutcome.isSuccess(), false);
256256
}
257+
258+
TEST_F(BucketTaggingTest, SetBucketTaggingKeyTest)
259+
{
260+
SetBucketTaggingRequest setrequest(BucketName);
261+
Tag tag1("project", "projectone");
262+
Tag tag2("user", "jsmith");
263+
TagSet tagset;
264+
tagset.push_back(tag1);
265+
tagset.push_back(tag2);
266+
Tagging taging;
267+
taging.setTags(tagset);
268+
setrequest.setTagging(taging);
269+
auto setoutcome = Client->SetBucketTagging(setrequest);
270+
EXPECT_EQ(setoutcome.isSuccess(), true);
271+
272+
DeleteBucketTaggingRequest delrequest(BucketName);
273+
Tagging taging1;
274+
TagSet tagset1;
275+
tagset1.push_back(tag1);
276+
taging1.setTags(tagset1);
277+
delrequest.setTagging(taging1);
278+
auto deloutcome = Client->DeleteBucketTagging(delrequest);
279+
EXPECT_EQ(deloutcome.isSuccess(), true);
280+
281+
auto getoutcome = Client->GetBucketTagging(GetBucketTaggingRequest(BucketName));
282+
EXPECT_EQ(getoutcome.isSuccess(), true);
283+
EXPECT_EQ(getoutcome.result().Tagging().Tags().size(), 1U);
284+
EXPECT_EQ(getoutcome.result().Tagging().Tags()[0].Key(), tag2.Key());
285+
286+
delrequest.setTagging(taging);
287+
deloutcome = Client->DeleteBucketTagging(delrequest);
288+
EXPECT_EQ(deloutcome.isSuccess(), true);
289+
290+
getoutcome = Client->GetBucketTagging(GetBucketTaggingRequest(BucketName));
291+
EXPECT_EQ(getoutcome.isSuccess(), true);
292+
EXPECT_EQ(getoutcome.result().Tagging().Tags().size(), 0U);
293+
}
257294
}
258295
}

0 commit comments

Comments
 (0)