Skip to content

Commit 2255ac1

Browse files
authored
Merge pull request #245 from tencentyun/dev/error_code_retry
Tag Filter of post bucket inventory
2 parents 6c634be + 3769948 commit 2255ac1

10 files changed

+75
-7
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [5.6.246.3]
9+
- Tag Filter of post bucket inventory
10+
811
## [5.6.246.2]
912
- post bucket inventory
1013

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.qcloud</groupId>
66
<artifactId>cos_api</artifactId>
7-
<version>5.6.246.2</version>
7+
<version>5.6.246.3</version>
88
<packaging>jar</packaging>
99
<name>cos-java-sdk</name>
1010
<description>java sdk for qcloud cos</description>

src/main/java/com/qcloud/cos/COSClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@
140140
import com.qcloud.cos.model.fetch.PutAsyncFetchTaskResultHandler;
141141
import com.qcloud.cos.model.fetch.PutAsyncFetchTaskSerializer;
142142
import com.qcloud.cos.model.inventory.InventoryConfiguration;
143+
import com.qcloud.cos.model.inventory.PostBucketInventoryConfigurationResult;
143144
import com.qcloud.cos.model.transform.ObjectTaggingXmlFactory;
144145
import com.qcloud.cos.region.Region;
145146
import com.qcloud.cos.retry.RetryUtils;
146147
import com.qcloud.cos.utils.*;
147-
import com.qcloud.cos.http.TimeOutCosHttpClient;
148148

149149
import com.qcloud.cos.utils.Base64;
150150
import org.apache.commons.codec.DecoderException;

src/main/java/com/qcloud/cos/demo/BucketInventoryDemo.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import com.qcloud.cos.model.ListBucketInventoryConfigurationsResult;
1010
import com.qcloud.cos.model.SetBucketInventoryConfigurationRequest;
1111
import com.qcloud.cos.model.DeleteBucketInventoryConfigurationRequest;
12-
import com.qcloud.cos.model.PostBucketInventoryConfigurationResult;
12+
import com.qcloud.cos.model.inventory.PostBucketInventoryConfigurationResult;
1313
import com.qcloud.cos.model.inventory.InventoryConfiguration;
1414
import com.qcloud.cos.model.inventory.InventoryCosBucketDestination;
1515
import com.qcloud.cos.model.inventory.InventoryFrequency;
@@ -18,11 +18,14 @@
1818
import com.qcloud.cos.model.inventory.InventoryDestination;
1919
import com.qcloud.cos.model.inventory.InventorySchedule;
2020
import com.qcloud.cos.model.inventory.InventoryPrefixPredicate;
21+
import com.qcloud.cos.model.inventory.InventoryAndPredicate;
2122
import com.qcloud.cos.model.inventory.InventoryFilter;
2223
import com.qcloud.cos.model.inventory.InventoryIncludedObjectVersions;
2324
import com.qcloud.cos.model.inventory.InventoryOptionalField;
25+
import com.qcloud.cos.model.Tag.Tag;
2426
import com.qcloud.cos.region.Region;
2527

28+
import java.util.ArrayList;
2629
import java.util.LinkedList;
2730
import java.util.List;
2831

@@ -172,16 +175,29 @@ private static void postBucketInventoryDemo() {
172175
inventoryDestination.setCosBucketDestination(inventoryCosBucketDestination);
173176
inventoryConfiguration.setDestination(inventoryDestination);
174177

175-
// 设置清单的调度周期,扫描前缀和id等
176-
inventoryConfiguration.setId("4");
178+
// 设置清单,扫描前缀和id等
179+
inventoryConfiguration.setId("1");
180+
// prefix filter
177181
InventoryPrefixPredicate inventoryFilter = new InventoryPrefixPredicate("test/");
178182
inventoryConfiguration.setInventoryFilter(new InventoryFilter(inventoryFilter));
183+
184+
// and Filter
185+
// InventoryAndPredicate inventoryAndPredicate = new InventoryAndPredicate();
186+
// inventoryAndPredicate.setPrefix("bbb");
187+
// List<Tag> filterTags = new ArrayList<>();
188+
// filterTags.add(new Tag("Testkey1", "value1"));
189+
// filterTags.add(new Tag("Testkey2", "value2"));
190+
// inventoryAndPredicate.setTags(filterTags);
191+
// inventoryConfiguration.setInventoryFilter(new InventoryFilter(inventoryAndPredicate));
192+
179193
inventoryConfiguration.setIncludedObjectVersions(InventoryIncludedObjectVersions.All);
180194
// 设置可选的输出字段
181195
List<String> optionalFields = new LinkedList<String>();
182196
optionalFields.add(InventoryOptionalField.Size.toString());
183197
optionalFields.add(InventoryOptionalField.LastModifiedDate.toString());
198+
optionalFields.add(InventoryOptionalField.Tag.toString());
184199
inventoryConfiguration.setOptionalFields(optionalFields);
200+
185201
SetBucketInventoryConfigurationRequest setBucketInventoryConfigurationRequest = new SetBucketInventoryConfigurationRequest();
186202
setBucketInventoryConfigurationRequest.setBucketName(bucketName);
187203
setBucketInventoryConfigurationRequest.setInventoryConfiguration(inventoryConfiguration);

src/main/java/com/qcloud/cos/internal/Unmarshallers.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowExecutionsResponse;
7272
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowListResponse;
7373
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowResponse;
74+
import com.qcloud.cos.model.inventory.PostBucketInventoryConfigurationResult;
7475

7576
/*** Collection of unmarshallers for COS XML responses. */
7677

src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@
7474
import com.qcloud.cos.model.ciModel.auditing.LibResult;
7575
import com.qcloud.cos.model.ciModel.auditing.ListResult;
7676
import com.qcloud.cos.model.ciModel.auditing.ObjectResults;
77-
import com.qcloud.cos.model.ciModel.auditing.OcrResults;
7877
import com.qcloud.cos.model.ciModel.auditing.SectionInfo;
7978
import com.qcloud.cos.model.ciModel.auditing.SnapshotInfo;
8079
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
@@ -163,6 +162,7 @@
163162
import com.qcloud.cos.model.inventory.InventoryPrefixPredicate;
164163
import com.qcloud.cos.model.inventory.InventorySchedule;
165164
import com.qcloud.cos.model.inventory.ServerSideEncryptionCOS;
165+
import com.qcloud.cos.model.inventory.PostBucketInventoryConfigurationResult;
166166
import com.qcloud.cos.model.lifecycle.LifecycleAndOperator;
167167
import com.qcloud.cos.model.lifecycle.LifecycleFilter;
168168
import com.qcloud.cos.model.lifecycle.LifecycleFilterPredicate;

src/main/java/com/qcloud/cos/model/BucketConfigurationXmlFactory.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.qcloud.cos.model.inventory.InventoryPrefixPredicate;
4141
import com.qcloud.cos.model.inventory.InventorySchedule;
4242
import com.qcloud.cos.model.inventory.ServerSideEncryptionCOS;
43+
import com.qcloud.cos.model.inventory.InventoryAndPredicate;
4344
import com.qcloud.cos.model.lifecycle.LifecycleAndOperator;
4445
import com.qcloud.cos.model.lifecycle.LifecycleFilter;
4546
import com.qcloud.cos.model.lifecycle.LifecycleFilterPredicate;
@@ -234,6 +235,18 @@ private void writeInventoryFilterPredicate(XmlWriter xml, InventoryFilterPredica
234235
if (predicate instanceof InventoryPrefixPredicate) {
235236
writePrefix(xml, ((InventoryPrefixPredicate) predicate).getPrefix());
236237
}
238+
239+
if (predicate instanceof InventoryAndPredicate) {
240+
xml.start("And");
241+
writePrefix(xml, ((InventoryAndPredicate) predicate).getPrefix());
242+
List<Tag> tags = ((InventoryAndPredicate) predicate).getTags();
243+
if (tags != null && !tags.isEmpty()) {
244+
for (Tag tag : tags) {
245+
writeTag(xml, tag);
246+
}
247+
}
248+
xml.end();
249+
}
237250
}
238251

239252
private void addInventorySchedule(XmlWriter xml, InventorySchedule schedule) {
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.qcloud.cos.model.inventory;
2+
3+
import com.qcloud.cos.model.Tag.Tag;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class InventoryAndPredicate extends InventoryFilterPredicate {
9+
private String prefix;
10+
11+
private List<Tag> tags = new ArrayList<>();
12+
13+
public String getPrefix() {
14+
return prefix;
15+
}
16+
17+
public void setPrefix(String prefix) {
18+
this.prefix = prefix;
19+
}
20+
21+
public void setTags(List<Tag> tags) {
22+
this.tags = tags;
23+
}
24+
25+
public List<Tag> getTags() {
26+
return tags;
27+
}
28+
29+
@Override
30+
public void accept(InventoryPredicateVisitor inventoryPredicateVisitor) {}
31+
}

src/main/java/com/qcloud/cos/model/inventory/InventoryOptionalField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public enum InventoryOptionalField {
3333

3434
ReplicationStatus("ReplicationStatus"),
3535

36+
Tag("Tag"),
37+
3638
;
3739

3840
private final String field;

src/main/java/com/qcloud/cos/model/PostBucketInventoryConfigurationResult.java renamed to src/main/java/com/qcloud/cos/model/inventory/PostBucketInventoryConfigurationResult.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
package com.qcloud.cos.model;
1+
package com.qcloud.cos.model.inventory;
2+
3+
import com.qcloud.cos.model.CosServiceResult;
24

35
public class PostBucketInventoryConfigurationResult extends CosServiceResult {
46
private String jobId;

0 commit comments

Comments
 (0)