Skip to content

Commit de89b92

Browse files
Merge pull request #193 from zhangtingwei998/master
updata 3.25.10
2 parents cfcff7c + d402231 commit de89b92

File tree

59 files changed

+2601
-33
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2601
-33
lines changed

README-Android.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.25.10
2+
New features:
3+
1. Support for Posix snapshot features
4+
2. Support for bucket QoS features
5+
3. Support Lifecycle 2.0
6+
-----------------------------------------------------------------------------------
17
Version 3.25.7
28
New features:
39
1. Added symlink feature

README-Java.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.25.10
2+
New features:
3+
1. Support for Posix snapshot features
4+
2. Support for bucket QoS features
5+
3. Support Lifecycle 2.0
6+
-----------------------------------------------------------------------------------
17
Version 3.25.7
28
New features:
39
1. Added symlink feature

README_CN.MD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.25.10
2+
New features:
3+
1. 支持并行文件系统快照特性
4+
2. 支持桶qos特性
5+
3. 支持生命周期2.0
6+
-----------------------------------------------------------------------------------
17
Version 3.25.7
28
New features:
39
1. 支持软链接特性

app/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.huaweicloud</groupId>
66
<artifactId>esdk-obs-java-android</artifactId>
7-
<version>3.25.7</version>
7+
<version>3.25.10</version>
88

99
<name>OBS SDK for Java/Android</name>
1010
<description>The OBS SDK for Android used for accessing Object Storage Service</description>

app/src/main/java/com/obs/services/AbstractBucketAdvanceClient.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import com.obs.services.exception.ObsException;
1919
import com.obs.services.internal.ServiceException;
2020
import com.obs.services.internal.utils.ServiceUtils;
21+
import com.obs.services.model.DeleteBucketLifecycleRequest;
22+
import com.obs.services.model.GetBucketLifecycleRequest;
2123
import com.obs.services.model.bpa.DeleteBucketPublicAccessBlockRequest;
2224
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusRequest;
2325
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusResult;
@@ -85,6 +87,20 @@ public LifecycleConfiguration action() throws ServiceException {
8587
});
8688
}
8789

90+
@Override
91+
public LifecycleConfiguration getBucketLifecycle(final GetBucketLifecycleRequest request) throws ObsException {
92+
ServiceUtils.assertParameterNotNull(request, "GetBucketLifecycleRequest is null");
93+
ServiceUtils.assertParameterNotNull2(request.getBucketName(), "bucketName is null");
94+
return this.doActionWithResult("getBucketLifecycleConfiguration", request.getBucketName(),
95+
new ActionCallbackWithResult<LifecycleConfiguration>() {
96+
97+
@Override
98+
public LifecycleConfiguration action() throws ServiceException {
99+
return AbstractBucketAdvanceClient.this.getBucketLifecycleConfigurationImpl(request);
100+
}
101+
});
102+
}
103+
88104
/*
89105
* (non-Javadoc)
90106
*
@@ -147,6 +163,20 @@ public HeaderResponse action() throws ServiceException {
147163

148164
}
149165

166+
@Override
167+
public HeaderResponse deleteBucketLifecycle(final DeleteBucketLifecycleRequest request) throws ObsException {
168+
ServiceUtils.assertParameterNotNull(request, "DeleteBucketLifecycleRequest is null");
169+
ServiceUtils.assertParameterNotNull2(request.getBucketName(), "bucketName is null");
170+
return this.doActionWithResult("deleteBucketLifecycleConfiguration", request.getBucketName(),
171+
new ActionCallbackWithResult<HeaderResponse>() {
172+
@Override
173+
public HeaderResponse action() throws ServiceException {
174+
return AbstractBucketAdvanceClient.this.deleteBucketLifecycleConfigurationImpl(request);
175+
}
176+
});
177+
178+
}
179+
150180
/*
151181
* (non-Javadoc)
152182
*

app/src/main/java/com/obs/services/AbstractBucketClient.java

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@
1616
package com.obs.services;
1717

1818
import java.util.List;
19+
import java.util.function.Function;
20+
import java.util.function.Supplier;
1921

2022
import com.obs.services.exception.ObsException;
23+
import com.obs.services.internal.ObsConstraint;
2124
import com.obs.services.internal.ServiceException;
2225
import com.obs.services.internal.utils.ServiceUtils;
2326
import com.obs.services.model.AccessControlList;
@@ -34,16 +37,31 @@
3437
import com.obs.services.model.BucketStoragePolicyConfiguration;
3538
import com.obs.services.model.BucketVersioningConfiguration;
3639
import com.obs.services.model.CreateBucketRequest;
40+
import com.obs.services.model.CreateSnapshotRequest;
41+
import com.obs.services.model.CreateSnapshotResponse;
3742
import com.obs.services.model.CreateVirtualBucketRequest;
3843
import com.obs.services.model.CreateVirtualBucketResult;
3944
import com.obs.services.model.CustomDomainCertificateConfig;
4045
import com.obs.services.model.DeleteBucketCustomDomainRequest;
46+
import com.obs.services.model.DeleteBucketLifecycleRequest;
47+
import com.obs.services.model.DeleteSnapshotRequest;
4148
import com.obs.services.model.GetBucketCustomDomainRequest;
49+
import com.obs.services.model.GetSnapshottableDirListRequest;
50+
import com.obs.services.model.GetSnapshottableDirListResult;
51+
import com.obs.services.model.GetSnapshotListRequest;
52+
import com.obs.services.model.GetSnapshotListResponse;
4253
import com.obs.services.model.HeaderResponse;
4354
import com.obs.services.model.ListBucketAliasResult;
4455
import com.obs.services.model.ListBucketsRequest;
4556
import com.obs.services.model.ListBucketsResult;
4657
import com.obs.services.model.ObsBucket;
58+
import com.obs.services.model.Qos.DeleteBucketQosRequest;
59+
import com.obs.services.model.Qos.GetBucketQoSRequest;
60+
import com.obs.services.model.Qos.GetBucketQoSResult;
61+
import com.obs.services.model.Qos.SetBucketQosRequest;
62+
import com.obs.services.model.Qos.QosRule;
63+
import com.obs.services.model.RenameSnapshotRequest;
64+
import com.obs.services.model.RenameSnapshotResponse;
4765
import com.obs.services.model.RequestPaymentConfiguration;
4866
import com.obs.services.model.RequestPaymentEnum;
4967
import com.obs.services.model.SetBucketAclRequest;
@@ -54,15 +72,43 @@
5472
import com.obs.services.model.SetBucketRequestPaymentRequest;
5573
import com.obs.services.model.SetBucketStoragePolicyRequest;
5674
import com.obs.services.model.SetBucketVersioningRequest;
75+
import com.obs.services.model.SetDisallowSnapshotRequest;
76+
import com.obs.services.model.SetSnapshotAllowRequest;
5777
import com.obs.services.model.inventory.SetInventoryConfigurationRequest;
5878
import com.obs.services.model.inventory.GetInventoryConfigurationRequest;
5979
import com.obs.services.model.inventory.DeleteInventoryConfigurationRequest;
6080
import com.obs.services.model.inventory.ListInventoryConfigurationRequest;
6181
import com.obs.services.model.inventory.GetInventoryConfigurationResult;
6282
import com.obs.services.model.inventory.ListInventoryConfigurationResult;
6383

84+
import static com.obs.services.internal.ObsConstraint.SNAPSHOT;
85+
import static com.obs.services.internal.ObsConstraint.SNAPSHOT_FULL_PATH;
86+
6487

6588
public abstract class AbstractBucketClient extends AbstractDeprecatedBucketClient {
89+
90+
private <T, R> T executeAction(String actionName,
91+
R request,
92+
Function<R, String> nameExtractor,
93+
Runnable additionalValidation,
94+
Supplier<T> implementation) throws ObsException {
95+
ServiceUtils.assertParameterNotNull(request, "request is null");
96+
97+
String bucketName = nameExtractor.apply(request);
98+
ServiceUtils.assertParameterNotNull2(bucketName, "bucketName is null");
99+
100+
if (additionalValidation != null) {
101+
additionalValidation.run();
102+
}
103+
return this.doActionWithResult(actionName, bucketName,
104+
new ActionCallbackWithResult<T>() {
105+
@Override
106+
public T action() throws ServiceException {
107+
return implementation.get();
108+
}
109+
});
110+
}
111+
66112
/*
67113
* (non-Javadoc)
68114
*
@@ -987,4 +1033,140 @@ public HeaderResponse action() throws ServiceException {
9871033
});
9881034

9891035
}
1036+
1037+
@Override
1038+
public HeaderResponse setBucketQos(SetBucketQosRequest request) throws ObsException {
1039+
ServiceUtils.assertParameterNotNull(request,"setBucketQosRequest is null");
1040+
ServiceUtils.assertParameterNotNull(request.getBucketName(),"bucketName is null");
1041+
ServiceUtils.assertParameterNotNull(request.getQosConfig(),"QosConfig is null");
1042+
ServiceUtils.assertParameterNotNull(request.getQosConfig().getRules(),"rules is null");
1043+
1044+
List<QosRule> rules = request.getQosConfig().getRules();
1045+
1046+
if (rules.isEmpty()) {
1047+
throw new IllegalArgumentException("rules is empty");
1048+
}
1049+
1050+
for (QosRule rule : rules) {
1051+
ServiceUtils.assertParameterNotNull(rule.getNetworkType(), "networkType is null");
1052+
ServiceUtils.assertParameterNotNull(rule.getQpsLimit(), "qpsLimit is null");
1053+
ServiceUtils.assertParameterNotNull(rule.getBpsLimit(), "bpsLimit is null");
1054+
}
1055+
return this.doActionWithResult("setBucketQoS", request.getBucketName(),
1056+
new ActionCallbackWithResult<HeaderResponse>() {
1057+
@Override
1058+
public HeaderResponse action() throws ServiceException {
1059+
return AbstractBucketClient.this.setBucketQosImpl(request);
1060+
}
1061+
});
1062+
}
1063+
1064+
@Override
1065+
public GetBucketQoSResult getBucketQoS(GetBucketQoSRequest request) {
1066+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
1067+
return this.doActionWithResult("getBucketQos", request.getBucketName(), new ActionCallbackWithResult<GetBucketQoSResult>() {
1068+
@Override
1069+
public GetBucketQoSResult action() throws ServiceException {
1070+
return AbstractBucketClient.this.getBucketQosImpl(request);
1071+
}
1072+
});
1073+
}
1074+
@Override
1075+
public HeaderResponse deleteBucketQoS(DeleteBucketQosRequest request) throws ObsException{
1076+
ServiceUtils.assertParameterNotNull(request.getBucketName(),"bucketName is null");
1077+
return this.doActionWithResult("deleteBucketQos", request.getBucketName(), new ActionCallbackWithResult<HeaderResponse>() {
1078+
@Override
1079+
public HeaderResponse action() throws ServiceException {
1080+
return AbstractBucketClient.this.deleteBucketQosImpl(request);
1081+
}
1082+
});
1083+
}
1084+
1085+
public HeaderResponse deleteSnapshot(DeleteSnapshotRequest request) throws ObsException {
1086+
return executeAction("deleteSnapshot", request, DeleteSnapshotRequest::getBucketName,
1087+
() -> {
1088+
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
1089+
ServiceUtils.assertParameterNotNull2(request.getSnapshotName(), "snapshotName is null");
1090+
},
1091+
() -> AbstractBucketClient.this.deleteSnapshotImpl(request)
1092+
);
1093+
}
1094+
1095+
@Override
1096+
public HeaderResponse setSnapshotAllow(SetSnapshotAllowRequest request) throws ObsException {
1097+
return executeAction("setSnapshotAllow", request, SetSnapshotAllowRequest::getBucketName,
1098+
() -> {
1099+
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
1100+
},
1101+
() -> AbstractBucketClient.this.setSnapshotAllowImpl(request)
1102+
);
1103+
}
1104+
1105+
@Override
1106+
public HeaderResponse setDisallowSnapshot(SetDisallowSnapshotRequest request) throws ObsException {
1107+
return executeAction("setDisallowSnapshot", request, SetDisallowSnapshotRequest::getBucketName,
1108+
() -> {
1109+
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
1110+
},
1111+
() -> AbstractBucketClient.this.setDisallowSnapshotImpl(request)
1112+
);
1113+
}
1114+
1115+
@Override
1116+
public GetSnapshottableDirListResult getSnapshottableDirList(GetSnapshottableDirListRequest request) throws ObsException {
1117+
return executeAction("getSnapshottableDirList", request, GetSnapshottableDirListRequest::getBucketName,
1118+
() -> {
1119+
ServiceUtils.assertParameterNotNegative(request.getMaxKeys(), "maxKeys is negative");
1120+
},
1121+
() -> AbstractBucketClient.this.getSnapshottableDirListImpl(request)
1122+
);
1123+
}
1124+
1125+
/**
1126+
* Get snapshot list for a bucket or object
1127+
*/
1128+
@Override
1129+
public GetSnapshotListResponse getSnapshotList(GetSnapshotListRequest request) throws ObsException {
1130+
return executeAction("getSnapshotList", request, GetSnapshotListRequest::getBucketName,
1131+
() -> {
1132+
ServiceUtils.assertParameterNotNegative(request.getMaxKeys(), "maxKeys is negative");
1133+
},
1134+
() -> AbstractBucketClient.this.getSnapshotListImpl(request)
1135+
);
1136+
}
1137+
1138+
/**
1139+
* Create snapshot for an object
1140+
*/
1141+
@Override
1142+
public CreateSnapshotResponse createSnapshot(CreateSnapshotRequest request) throws ObsException {
1143+
return executeAction("createSnapshot", request, CreateSnapshotRequest::getBucketName,
1144+
() -> {
1145+
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
1146+
ServiceUtils.assertParameterNotNull2(request.getSnapshotName(), "snapshotName is null");
1147+
ServiceUtils.checkParameterLength(SNAPSHOT, request.getSnapshotName(),
1148+
1, ObsConstraint.SNAPSHOT_NAME_MAX_LENGTH);
1149+
ServiceUtils.checkParameterLength(SNAPSHOT_FULL_PATH, request.getObjectKey(),
1150+
1, ObsConstraint.SNAPSHOT_FULL_PATH_MAX_LENGTH);
1151+
},
1152+
() -> AbstractBucketClient.this.createSnapshotImpl(request)
1153+
);
1154+
}
1155+
1156+
/**
1157+
* Rename snapshot for an object
1158+
*/
1159+
@Override
1160+
public RenameSnapshotResponse renameSnapshot(RenameSnapshotRequest request) throws ObsException {
1161+
return executeAction("renameSnapshot", request, RenameSnapshotRequest::getBucketName,
1162+
() -> {
1163+
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
1164+
ServiceUtils.assertParameterNotNull2(request.getOldSnapshotName(), "oldSnapshotName is null");
1165+
ServiceUtils.assertParameterNotNull2(request.getNewSnapshotName(), "newSnapshotName is null");
1166+
},
1167+
() -> AbstractBucketClient.this.renameSnapshotImpl(request)
1168+
);
1169+
}
1170+
1171+
public abstract HeaderResponse deleteBucketLifecycle(DeleteBucketLifecycleRequest request) throws ObsException;
9901172
}

app/src/main/java/com/obs/services/AbstractObjectClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,7 @@ public HeaderResponse putSymlink(PutSymlinkRequest request) throws ObsException
846846
ServiceUtils.assertParameterNotNull(request, "PutSymlinkRequest is null");
847847
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
848848
ServiceUtils.assertParameterNotNull(request.getObjectKey(), "objectKey is null");
849+
ServiceUtils.assertParameterNotNull(request.getSymlinkTarget(), "symlinkTarget is null");
849850
return this.doActionWithResult("putSymlink", request.getBucketName(),
850851
new ActionCallbackWithResult<HeaderResponse>() {
851852

0 commit comments

Comments
 (0)