Skip to content

Commit 6f76962

Browse files
authored
Merge pull request #170 from zzq996/master
Version 3.24.12
2 parents c509f1d + 745159a commit 6f76962

Some content is hidden

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

46 files changed

+1246
-54
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.24.12
2+
New features:
3+
1. Added bpa feature
4+
2. Added intelligent tiering feature
5+
3. Added posix trash feature
6+
-----------------------------------------------------------------------------------
17
Version 3.24.9
28
Resolved issues:
39
1. Fixed the issue that can't auto add ContentType webp

README-Java.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.24.12
2+
New features:
3+
1. Added bpa feature
4+
2. Added intelligent tiering feature
5+
3. Added posix trash feature
6+
-----------------------------------------------------------------------------------
17
Version 3.24.9
28
Resolved issues:
39
1. Fixed the issue that can't auto add ContentType webp

README.MD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.24.12
2+
New features:
3+
1. Added bpa feature
4+
2. Added intelligent tiering feature
5+
3. Added posix trash feature
6+
-----------------------------------------------------------------------------------
17
Version 3.24.9
28
Resolved issues:
39
1. Fixed the issue that can't auto add ContentType webp

README_CN.MD

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 3.24.12
2+
New features:
3+
1. 支持bpa特性
4+
2. 支持智能分级特性
5+
3. 支持并行文件系统trash特性
6+
-----------------------------------------------------------------------------------
17
Version 3.24.9
28
Resolved issues:
39
1. 修复无法自动添加webp格式的ContentType的问题

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

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@
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.bpa.DeleteBucketPublicAccessBlockRequest;
22+
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusRequest;
23+
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusResult;
24+
import com.obs.services.model.bpa.GetBucketPublicAccessBlockRequest;
25+
import com.obs.services.model.bpa.GetBucketPublicAccessBlockResult;
26+
import com.obs.services.model.bpa.GetBucketPublicStatusRequest;
27+
import com.obs.services.model.bpa.GetBucketPublicStatusResult;
28+
import com.obs.services.model.bpa.PutBucketPublicAccessBlockRequest;
2129
import com.obs.services.model.BaseBucketRequest;
2230
import com.obs.services.model.BucketDirectColdAccess;
2331
import com.obs.services.model.BucketEncryption;
@@ -42,6 +50,10 @@
4250
import com.obs.services.model.fs.GetBucketFSStatusResult;
4351
import com.obs.services.model.fs.SetBucketFSStatusRequest;
4452
import com.obs.services.model.AuthTypeEnum;
53+
import com.obs.services.model.trash.DeleteBucketTrashRequest;
54+
import com.obs.services.model.trash.GetBucketTrashRequest;
55+
import com.obs.services.model.trash.GetBucketTrashResult;
56+
import com.obs.services.model.trash.SetBucketTrashRequest;
4557

4658
public abstract class AbstractBucketAdvanceClient extends AbstractBucketClient {
4759
/*
@@ -790,6 +802,44 @@ public HeaderResponse deleteBucketDirectColdAccess(final String bucketName) thro
790802
return this.deleteBucketDirectColdAccess(new BaseBucketRequest(bucketName));
791803
}
792804

805+
@Override
806+
public HeaderResponse setBucketTrash(SetBucketTrashRequest setBucketTrashRequest) throws ObsException{
807+
ServiceUtils.assertParameterNotNull(setBucketTrashRequest, "SetBucketTrashRequest is null");
808+
ServiceUtils.assertParameterNotNull(setBucketTrashRequest.getBucketName(), "bucketName is null");
809+
return this.doActionWithResult("setBucketTrash", setBucketTrashRequest.getBucketName(),
810+
new ActionCallbackWithResult<HeaderResponse>() {
811+
@Override
812+
public HeaderResponse action() throws ServiceException {
813+
return AbstractBucketAdvanceClient.this.setBucketTrashImpl(setBucketTrashRequest);
814+
}
815+
});
816+
}
817+
818+
@Override
819+
public GetBucketTrashResult getBucketTrash(GetBucketTrashRequest getBucketTrashRequest) throws ObsException{
820+
ServiceUtils.assertParameterNotNull(getBucketTrashRequest, "GetBucketTrashRequest is null");
821+
ServiceUtils.assertParameterNotNull(getBucketTrashRequest.getBucketName(), "bucketName is null");
822+
return this.doActionWithResult("getBucketTrash", getBucketTrashRequest.getBucketName(),
823+
new ActionCallbackWithResult<GetBucketTrashResult>() {
824+
@Override
825+
public GetBucketTrashResult action() throws ServiceException {
826+
return AbstractBucketAdvanceClient.this.getBucketTrashImpl(getBucketTrashRequest);
827+
}
828+
});
829+
}
830+
831+
@Override
832+
public HeaderResponse deleteBucketTrash(DeleteBucketTrashRequest deleteBucketTrashRequest) throws ObsException{
833+
ServiceUtils.assertParameterNotNull(deleteBucketTrashRequest, "DeleteBucketTrashRequest is null");
834+
ServiceUtils.assertParameterNotNull(deleteBucketTrashRequest.getBucketName(), "bucketName is null");
835+
return this.doActionWithResult("deleteBucketTrash", deleteBucketTrashRequest.getBucketName(),
836+
new ActionCallbackWithResult<HeaderResponse>() {
837+
@Override
838+
public HeaderResponse action() throws ServiceException {
839+
return AbstractBucketAdvanceClient.this.deleteBucketTrashImpl(deleteBucketTrashRequest);
840+
}
841+
});
842+
}
793843
/*
794844
* (non-Javadoc)
795845
*
@@ -807,4 +857,99 @@ public HeaderResponse action() throws ServiceException {
807857
}
808858
});
809859
}
860+
861+
/**
862+
*
863+
* @param request
864+
* @return
865+
* @throws ObsException
866+
*/
867+
@Override
868+
public HeaderResponse putBucketPublicAccessBlock(PutBucketPublicAccessBlockRequest request) throws ObsException {
869+
ServiceUtils.assertParameterNotNull(request, "PutBucketPublicAccessBlockRequest is null");
870+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
871+
return this.doActionWithResult("putBucketPublicAccessBlock", request.getBucketName(),
872+
new ActionCallbackWithResult<HeaderResponse>() {
873+
@Override
874+
public HeaderResponse action() throws ServiceException {
875+
return AbstractBucketAdvanceClient.this.putBucketPublicAccessBlockImpl(request);
876+
}
877+
});
878+
}
879+
880+
/**
881+
*
882+
* @param request
883+
* @return
884+
* @throws ObsException
885+
*/
886+
@Override
887+
public GetBucketPublicAccessBlockResult getBucketPublicAccessBlock(GetBucketPublicAccessBlockRequest request) throws ObsException {
888+
ServiceUtils.assertParameterNotNull(request, "GetBucketPublicAccessBlockRequest is null");
889+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
890+
return this.doActionWithResult("getBucketPublicAccessBlock", request.getBucketName(),
891+
new ActionCallbackWithResult<GetBucketPublicAccessBlockResult>() {
892+
@Override
893+
public GetBucketPublicAccessBlockResult action() throws ServiceException {
894+
return AbstractBucketAdvanceClient.this.getBucketPublicAccessBlockImpl(request);
895+
}
896+
});
897+
}
898+
899+
/**
900+
*
901+
* @param request
902+
* @return
903+
* @throws ObsException
904+
*/
905+
@Override
906+
public HeaderResponse deleteBucketPublicAccessBlock(DeleteBucketPublicAccessBlockRequest request) throws ObsException {
907+
ServiceUtils.assertParameterNotNull(request, "DeleteBucketPublicAccessBlockRequest is null");
908+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
909+
return this.doActionWithResult("deleteBucketPublicAccessBlock", request.getBucketName(),
910+
new ActionCallbackWithResult<HeaderResponse>() {
911+
@Override
912+
public HeaderResponse action() throws ServiceException {
913+
return AbstractBucketAdvanceClient.this.deleteBucketPublicAccessBlockImpl(request);
914+
}
915+
});
916+
}
917+
918+
/**
919+
*
920+
* @param request
921+
* @return
922+
* @throws ObsException
923+
*/
924+
@Override
925+
public GetBucketPolicyPublicStatusResult getBucketPolicyPublicStatus(GetBucketPolicyPublicStatusRequest request) throws ObsException {
926+
ServiceUtils.assertParameterNotNull(request, "GetBucketPolicyPublicStatusRequest is null");
927+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
928+
return this.doActionWithResult("getBucketPolicyPublicStatus", request.getBucketName(),
929+
new ActionCallbackWithResult<GetBucketPolicyPublicStatusResult>() {
930+
@Override
931+
public GetBucketPolicyPublicStatusResult action() throws ServiceException {
932+
return AbstractBucketAdvanceClient.this.getBucketPolicyPublicStatusImpl(request);
933+
}
934+
});
935+
}
936+
937+
/**
938+
*
939+
* @param request
940+
* @return
941+
* @throws ObsException
942+
*/
943+
@Override
944+
public GetBucketPublicStatusResult getBucketPublicStatus(GetBucketPublicStatusRequest request) throws ObsException {
945+
ServiceUtils.assertParameterNotNull(request, "GetBucketPublicStatusRequest is null");
946+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
947+
return this.doActionWithResult("getBucketPublicStatus", request.getBucketName(),
948+
new ActionCallbackWithResult<GetBucketPublicStatusResult>() {
949+
@Override
950+
public GetBucketPublicStatusResult action() throws ServiceException {
951+
return AbstractBucketAdvanceClient.this.getBucketPublicStatusImpl(request);
952+
}
953+
});
954+
}
810955
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ protected void init(String accessKey, String secretKey, String securityToken, Ob
7070
this.getProviderCredentials().setIsAuthTypeNegotiation(true);
7171
}
7272
this.initHttpClient(config.getHttpDispatcher(), config.getCustomizedDnsImpl(), config.getHostnameVerifier(),
73-
config.getEventListenerFactory());
73+
config.getEventListenerFactory(), config.getSslContext());
7474
OBSXMLBuilder.setXmlDocumentBuilderFactoryClass(config.getXmlDocumentBuilderFactoryClass());
7575
reqBean.setRespTime(new Date());
7676
reqBean.setResultCode(Constants.RESULTCODE_SUCCESS);
@@ -497,6 +497,8 @@ private PostSignatureResponse createPostSignature(PostSignatureRequest request,
497497
ILOG.error(reqBean);
498498
}
499499
throw new ObsException(e.getMessage(), e);
500+
} finally {
501+
AccessLoggerUtils.printLog();
500502
}
501503
}
502504
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ private void refresh(boolean ignoreException) {
8383
do {
8484
try {
8585
securityKey = getNewSecurityKey();
86+
break; // no need to retry if getNewSecurityKey succeeded
8687
} catch (IOException | RuntimeException e) {
8788
ILOG.warn("refresh new security key failed. times : " + times + "; maxRetryTimes is : " + maxRetryTimes
8889
+ "; ignoreException : " + ignoreException, e);

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
import com.obs.services.model.AccessControlList;
2525
import com.obs.services.model.AppendObjectRequest;
2626
import com.obs.services.model.AppendObjectResult;
27+
import com.obs.services.model.bpa.DeleteBucketPublicAccessBlockRequest;
28+
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusRequest;
29+
import com.obs.services.model.bpa.GetBucketPolicyPublicStatusResult;
30+
import com.obs.services.model.bpa.GetBucketPublicAccessBlockRequest;
31+
import com.obs.services.model.bpa.GetBucketPublicAccessBlockResult;
32+
import com.obs.services.model.bpa.GetBucketPublicStatusRequest;
33+
import com.obs.services.model.bpa.GetBucketPublicStatusResult;
34+
import com.obs.services.model.bpa.PutBucketPublicAccessBlockRequest;
2735
import com.obs.services.model.BaseBucketRequest;
2836
import com.obs.services.model.BucketCors;
2937
import com.obs.services.model.BucketDirectColdAccess;
@@ -135,6 +143,10 @@
135143
import com.obs.services.model.select.SelectObjectResult;
136144
import com.obs.services.model.ObjectTagResult;
137145
import com.obs.services.model.ObjectTaggingRequest;
146+
import com.obs.services.model.trash.DeleteBucketTrashRequest;
147+
import com.obs.services.model.trash.GetBucketTrashRequest;
148+
import com.obs.services.model.trash.GetBucketTrashResult;
149+
import com.obs.services.model.trash.SetBucketTrashRequest;
138150

139151
/**
140152
* Basic OBS interface
@@ -2299,6 +2311,12 @@ UploadPartResult uploadPart(String bucketName, String objectKey, String uploadId
22992311
*/
23002312
HeaderResponse deleteBucketDirectColdAccess(BaseBucketRequest request) throws ObsException;
23012313

2314+
HeaderResponse setBucketTrash(SetBucketTrashRequest setBucketTrashRequest) throws ObsException;
2315+
2316+
GetBucketTrashResult getBucketTrash(GetBucketTrashRequest getBucketTrashRequest) throws ObsException;
2317+
2318+
HeaderResponse deleteBucketTrash(DeleteBucketTrashRequest deleteBucketTrashRequest) throws ObsException;
2319+
23022320
HeaderResponse setInventoryConfiguration(SetInventoryConfigurationRequest request) throws ObsException;
23032321

23042322
GetInventoryConfigurationResult getInventoryConfiguration(GetInventoryConfigurationRequest request) throws ObsException;
@@ -2307,6 +2325,16 @@ UploadPartResult uploadPart(String bucketName, String objectKey, String uploadId
23072325

23082326
HeaderResponse deleteInventoryConfiguration(DeleteInventoryConfigurationRequest request) throws ObsException;
23092327

2328+
HeaderResponse putBucketPublicAccessBlock(PutBucketPublicAccessBlockRequest request) throws ObsException;
2329+
2330+
GetBucketPublicAccessBlockResult getBucketPublicAccessBlock(GetBucketPublicAccessBlockRequest request) throws ObsException;
2331+
2332+
HeaderResponse deleteBucketPublicAccessBlock(DeleteBucketPublicAccessBlockRequest request) throws ObsException;
2333+
2334+
GetBucketPolicyPublicStatusResult getBucketPolicyPublicStatus(GetBucketPolicyPublicStatusRequest request) throws ObsException;
2335+
2336+
GetBucketPublicStatusResult getBucketPublicStatus(GetBucketPublicStatusRequest request) throws ObsException;
2337+
23102338
/**
23112339
* Close ObsClient and release connection resources.
23122340
*

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,4 +290,10 @@ private static Field getFieldFromClass(Class<?> clazz, String key) {
290290
} while (clazz != null);
291291
return null;
292292
}
293+
294+
public void setProvider(IObsCredentialsProvider provider) {
295+
ServiceUtils.assertParameterNotNull(provider, "ObsCredentialsProvider is null");
296+
this.credentials.setObsCredentialsProvider(provider);
297+
}
298+
293299
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import javax.net.ssl.HostnameVerifier;
1818
import javax.net.ssl.KeyManagerFactory;
19+
import javax.net.ssl.SSLContext;
1920
import javax.net.ssl.TrustManagerFactory;
2021

2122
import com.obs.services.internal.ObsConstraint;
@@ -109,6 +110,8 @@ public class ObsConfiguration implements Cloneable {
109110
private EventListener.Factory eventListenerFactory;
110111
private LocalTimeUtil localTimeUtil;
111112

113+
private SSLContext sslContext;
114+
112115
/**
113116
* Constructor
114117
*/
@@ -144,6 +147,7 @@ public ObsConfiguration() {
144147
this.localAuthTypeCacheCapacity = ObsConstraint.DEFAULT_LOCAL_AUTH_TYPE_CACHE_CAPACITY;
145148
this.secureRandom = new SecureRandom();
146149
this.localTimeUtil = new LocalTimeUtil();
150+
this.sslContext = null;
147151
}
148152

149153
public String getDelimiter() {
@@ -961,5 +965,13 @@ public void setLocalTimeUtil(LocalTimeUtil localTimeUtil) {
961965
this.localTimeUtil = localTimeUtil;
962966
}
963967

968+
public SSLContext getSslContext() {
969+
return sslContext;
970+
}
971+
972+
public void setSslContext(SSLContext sslContext) {
973+
this.sslContext = sslContext;
974+
}
975+
964976

965977
}

0 commit comments

Comments
 (0)