Skip to content

Commit cfcff7c

Browse files
Merge pull request #189 from zhangtingwei998/master
updata 3.25.7
2 parents 42589ae + 6972736 commit cfcff7c

26 files changed

+512
-95
lines changed

README-Android.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Version 3.25.7
2+
New features:
3+
1. Added symlink feature
4+
-----------------------------------------------------------------------------------
15
Version 3.25.5
26
New features:
37
1. Added IMDSv2 logic

README-Java.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Version 3.25.7
2+
New features:
3+
1. Added symlink feature
4+
-----------------------------------------------------------------------------------
15
Version 3.25.5
26
New features:
37
1. Added IMDSv2 logic

README_CN.MD

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Version 3.25.7
2+
New features:
3+
1. 支持软链接特性
4+
-----------------------------------------------------------------------------------
15
Version 3.25.5
26
New features:
37
1. 支持IMDSv2

app/pom.xml

Lines changed: 56 additions & 10 deletions
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.21.12</version>
7+
<version>3.25.7</version>
88

99
<name>OBS SDK for Java/Android</name>
1010
<description>The OBS SDK for Android used for accessing Object Storage Service</description>
@@ -31,39 +31,46 @@
3131
<dependency>
3232
<groupId>com.squareup.okhttp3</groupId>
3333
<artifactId>okhttp</artifactId>
34-
<version>4.9.1</version>
34+
<version>4.10.0</version>
3535
</dependency>
3636
<dependency>
3737
<groupId>com.squareup.okio</groupId>
3838
<artifactId>okio</artifactId>
39-
<version>2.7.0</version>
39+
<version>2.10.0</version>
4040
</dependency>
41-
41+
4242
<dependency>
4343
<groupId>com.fasterxml.jackson.core</groupId>
4444
<artifactId>jackson-core</artifactId>
45-
<version>2.12.5</version>
45+
<version>2.13.3</version>
4646
</dependency>
4747
<dependency>
4848
<groupId>com.fasterxml.jackson.core</groupId>
4949
<artifactId>jackson-databind</artifactId>
50-
<version>2.12.5</version>
50+
<version>2.13.4.1</version>
5151
</dependency>
5252
<dependency>
5353
<groupId>com.fasterxml.jackson.core</groupId>
5454
<artifactId>jackson-annotations</artifactId>
55-
<version>2.12.5</version>
55+
<version>2.13.2</version>
5656
</dependency>
5757

5858
<dependency>
5959
<groupId>org.apache.logging.log4j</groupId>
6060
<artifactId>log4j-core</artifactId>
61-
<version>2.17.0</version>
61+
<version>2.18.0</version>
6262
</dependency>
6363
<dependency>
6464
<groupId>org.apache.logging.log4j</groupId>
6565
<artifactId>log4j-api</artifactId>
66-
<version>2.17.0</version>
66+
<version>2.18.0</version>
67+
</dependency>
68+
69+
<dependency>
70+
<groupId>org.powermock</groupId>
71+
<artifactId>powermock-module-junit4</artifactId>
72+
<version>2.0.9</version>
73+
<scope>test</scope>
6774
</dependency>
6875
</dependencies>
6976

@@ -90,7 +97,7 @@
9097
</execution>
9198
</executions>
9299
</plugin>
93-
100+
94101
<plugin>
95102
<groupId>org.apache.maven.plugins</groupId>
96103
<artifactId>maven-checkstyle-plugin</artifactId>
@@ -118,6 +125,8 @@
118125
<artifactId>maven-compiler-plugin</artifactId>
119126
<configuration>
120127
<encoding>UTF-8</encoding>
128+
<source>8</source>
129+
<target>8</target>
121130
</configuration>
122131
<executions>
123132
<execution>
@@ -164,6 +173,43 @@
164173
</descriptors>
165174
</configuration>
166175
</plugin>
176+
177+
<plugin>
178+
<groupId>com.huawei.fuxi</groupId>
179+
<artifactId>fuxicov-maven-plugin</artifactId>
180+
<version>1.0.9-SNAPSHOT</version>
181+
<executions>
182+
<!--覆盖报告插桩部分-->
183+
<execution>
184+
<goals>
185+
<goal>prepare-agent</goal>
186+
</goals>
187+
<configuration>
188+
<!--include表示采集覆盖率的包的范围,可配置多条-->
189+
<includes>
190+
<include>com.obs.*</include>
191+
</includes>
192+
</configuration>
193+
</execution>
194+
<!--覆盖报告生成部分,其中test表示在maven测试阶段后生成报告,有一些项目可能是verify阶段-->
195+
<execution>
196+
<id>report</id>
197+
<phase>test</phase>
198+
<goals>
199+
<goal>report</goal>
200+
</goals>
201+
</execution>
202+
</executions>
203+
</plugin>
204+
205+
<plugin>
206+
<groupId>org.apache.maven.plugins</groupId>
207+
<artifactId>maven-surefire-plugin</artifactId>
208+
<version>3.0.0-M5</version>
209+
<configuration>
210+
<argLine>@{argLine}</argLine>
211+
</configuration>
212+
</plugin>
167213
</plugins>
168214
</build>
169215

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

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
import com.obs.services.model.select.SelectObjectResult;
5757
import com.obs.services.model.ObjectTagResult;
5858
import com.obs.services.model.ObjectTaggingRequest;
59+
import com.obs.services.model.symlink.GetSymlinkRequest;
60+
import com.obs.services.model.symlink.GetSymlinkResult;
61+
import com.obs.services.model.symlink.PutSymlinkRequest;
5962

6063
public abstract class AbstractObjectClient extends AbstractBucketAdvanceClient {
6164
@Override
@@ -279,7 +282,7 @@ public PutObjectResult putObject(String bucketName, String objectKey, InputStrea
279282
public PutObjectResult putObject(final PutObjectRequest request) throws ObsException {
280283

281284
ServiceUtils.assertParameterNotNull(request, "PutObjectRequest is null");
282-
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
285+
ServiceUtils.assertParameterNotNull(request.getObjectKey(), "objectKey is null");
283286

284287
return this.doActionWithResult("putObject", request.getBucketName(),
285288
new ActionCallbackWithResult<PutObjectResult>() {
@@ -380,7 +383,7 @@ void authTypeNegotiate(String bucketName) throws ServiceException {
380383
public ObsObject getObject(final GetObjectRequest request) throws ObsException {
381384

382385
ServiceUtils.assertParameterNotNull(request, "GetObjectRequest is null");
383-
ServiceUtils.assertParameterNotNull2(request.getObjectKey(), "objectKey is null");
386+
ServiceUtils.assertParameterNotNull(request.getObjectKey(), "objectKey is null");
384387
return this.doActionWithResult("getObject", request.getBucketName(), new ActionCallbackWithResult<ObsObject>() {
385388

386389
@Override
@@ -837,4 +840,34 @@ public RestoreObjectResult action() throws ServiceException {
837840
}
838841
});
839842
}
843+
844+
@Override
845+
public HeaderResponse putSymlink(PutSymlinkRequest request) throws ObsException {
846+
ServiceUtils.assertParameterNotNull(request, "PutSymlinkRequest is null");
847+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
848+
ServiceUtils.assertParameterNotNull(request.getObjectKey(), "objectKey is null");
849+
return this.doActionWithResult("putSymlink", request.getBucketName(),
850+
new ActionCallbackWithResult<HeaderResponse>() {
851+
852+
@Override
853+
public HeaderResponse action() throws ServiceException {
854+
return AbstractObjectClient.this.putSymlinkImpl(request);
855+
}
856+
});
857+
}
858+
859+
@Override
860+
public GetSymlinkResult getSymlink(GetSymlinkRequest request) throws ObsException {
861+
ServiceUtils.assertParameterNotNull(request, "GetSymlinkRequest is null");
862+
ServiceUtils.assertParameterNotNull(request.getBucketName(), "bucketName is null");
863+
ServiceUtils.assertParameterNotNull(request.getObjectKey(), "objectKey is null");
864+
return this.doActionWithResult("getSymlink", request.getBucketName(),
865+
new ActionCallbackWithResult<GetSymlinkResult>() {
866+
867+
@Override
868+
public GetSymlinkResult action() throws ServiceException {
869+
return AbstractObjectClient.this.getSymlinkImpl(request);
870+
}
871+
});
872+
}
840873
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@
143143
import com.obs.services.model.select.SelectObjectResult;
144144
import com.obs.services.model.ObjectTagResult;
145145
import com.obs.services.model.ObjectTaggingRequest;
146+
import com.obs.services.model.symlink.GetSymlinkRequest;
147+
import com.obs.services.model.symlink.GetSymlinkResult;
148+
import com.obs.services.model.symlink.PutSymlinkRequest;
146149
import com.obs.services.model.trash.DeleteBucketTrashRequest;
147150
import com.obs.services.model.trash.GetBucketTrashRequest;
148151
import com.obs.services.model.trash.GetBucketTrashResult;
@@ -2335,6 +2338,10 @@ UploadPartResult uploadPart(String bucketName, String objectKey, String uploadId
23352338

23362339
GetBucketPublicStatusResult getBucketPublicStatus(GetBucketPublicStatusRequest request) throws ObsException;
23372340

2341+
HeaderResponse putSymlink(PutSymlinkRequest request) throws ObsException;
2342+
2343+
GetSymlinkResult getSymlink(GetSymlinkRequest request) throws ObsException;
2344+
23382345
/**
23392346
* Close ObsClient and release connection resources.
23402347
*

app/src/main/java/com/obs/services/internal/Constants.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ public static class ObsBucketReplicationRequestParams {
239239

240240
public static final TimeZone GMT_TIMEZONE = TimeZone.getTimeZone("GMT");
241241

242-
public static final String OBS_SDK_VERSION = "3.25.5";
242+
public static final String OBS_SDK_VERSION = "3.25.7";
243243

244244
public static final String USER_AGENT_VALUE = "obs-sdk-java/" + Constants.OBS_SDK_VERSION;
245245

@@ -300,6 +300,7 @@ public static class ObsBucketReplicationRequestParams {
300300
public static final String REQUEST_TIME_TOO_SKEWED_CODE = "RequestTimeTooSkewed";
301301
public static final String ERROR_CODE_HEADER_OBS = "x-obs-error-code";
302302
public static final String ERROR_CODE_HEADER_AMZ = "x-amz-error-code";
303+
public static final String SYMLINK_HEADER = "symlink-target";
303304

304305
public static final List<String> ALLOWED_RESPONSE_HTTP_CONTENT_TYPES_FOR_XML = Collections.unmodifiableList(
305306
Arrays.asList(
@@ -341,6 +342,6 @@ public static class ObsBucketReplicationRequestParams {
341342
"response-cache-control", "response-content-disposition", "response-content-encoding",
342343
"x-image-save-bucket", "x-image-save-object", "x-image-process", "x-obs-sse-kms-key-project-id",
343344
"x-oss-process", "ignore-sign-in-query", "listcontentsummary", "multilistcontentsummary",
344-
"x-obs-trash", "getcontentsummary", "select", "select-type"));
345+
"x-obs-trash", "getcontentsummary", "select", "select-type", "symlink"));
345346

346347
}

app/src/main/java/com/obs/services/internal/ObsConvertor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,9 @@ public String transStorageClass(StorageClassEnum storageClass) {
322322
case INTELLIGENT_TIERING:
323323
storageClassStr = "INTELLIGENT_TIERING";
324324
break;
325+
case HIGH_PERFORMANCE:
326+
storageClassStr = "HIGH_PERFORMANCE";
327+
break;
325328
default:
326329
break;
327330
}

app/src/main/java/com/obs/services/internal/V2Convertor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,9 @@ public String transStorageClass(StorageClassEnum storageClass) {
479479
case DEEP_ARCHIVE:
480480
storageClassStr = "DEEP_ARCHIVE";
481481
break;
482+
case HIGH_PERFORMANCE:
483+
storageClassStr = "HIGH_PERFORMANCE";
484+
break;
482485
default:
483486
break;
484487
}

app/src/main/java/com/obs/services/internal/handler/XmlResponsesSaxParser.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.obs.services.internal.utils.ServiceUtils;
3434
import com.obs.services.model.AbstractNotification;
3535
import com.obs.services.model.AccessControlList;
36+
import com.obs.services.model.ObjectTypeEnum;
3637
import com.obs.services.model.bpa.BucketPolicyStatus;
3738
import com.obs.services.model.bpa.BucketPublicAccessBlock;
3839
import com.obs.services.model.bpa.BucketPublicStatus;
@@ -397,6 +398,7 @@ private void setCurrentObjectProperties(String name, String elementText) {
397398
currentOwner.setId(elementText);
398399
} else if (name.equals("Type")) {
399400
currentObject.getMetadata().setAppendable("Appendable".equals(elementText));
401+
currentObject.setObjectType(ObjectTypeEnum.getValueFromCode(elementText));
400402
}
401403
}
402404
}
@@ -1198,6 +1200,8 @@ public static class ListVersionsHandler extends DefaultXmlHandler {
11981200

11991201
private boolean needDecode;
12001202

1203+
private ObjectTypeEnum objectType;
1204+
12011205
public String getDelimiter() {
12021206
return getDecodedString(this.delimiter, needDecode);
12031207
}
@@ -1301,6 +1305,7 @@ public void endElement(String name, String content) {
13011305
storageClass = content;
13021306
} else if (name.equals("Type")) {
13031307
isAppendable = "Appendable".equals(content);
1308+
objectType = ObjectTypeEnum.getValueFromCode(content);
13041309
} else if (name.equals("ID")) {
13051310
if (owner == null) {
13061311
owner = new Owner();
@@ -1363,6 +1368,14 @@ private void addVersionOrDeleteMarker(String name) {
13631368
.appendable(isAppendable)
13641369
.builder();
13651370

1371+
if (objectType == null) {
1372+
item.setObjectType(ObjectTypeEnum.NORMAL);
1373+
} else {
1374+
item.setObjectType(objectType);
1375+
// reset objectType
1376+
objectType = null;
1377+
}
1378+
13661379
items.add(item);
13671380
this.reset();
13681381
} else if (name.equals("DeleteMarker")) {

0 commit comments

Comments
 (0)