Skip to content

Commit f5c5f21

Browse files
committed
update directory tree
1 parent b2ec044 commit f5c5f21

File tree

3 files changed

+46
-28
lines changed

3 files changed

+46
-28
lines changed

src/main/java/com/aliyun/oss/internal/OSSObjectOperation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1041,7 +1041,7 @@ public VoidResult renameObject(RenameObjectRequest renameObjectRequest) throws O
10411041
ensureObjectKeyValid(srcObject);
10421042

10431043
Map<String, String> headers = new HashMap<String, String>();
1044-
headers.put(OSSHeaders.OSS_RENAME_SOURCE, srcObject);
1044+
headers.put(OSSHeaders.OSS_RENAME_SOURCE, HttpUtil.urlEncode(srcObject, DEFAULT_CHARSET_NAME));
10451045
populateRequestPayerHeader(headers, renameObjectRequest.getRequestPayer());
10461046

10471047
Map<String, String> params = new HashMap<String, String>();

src/test/java/com/aliyun/oss/integrationtests/HnsTest.java

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.aliyun.oss.integrationtests;
22

33

4+
import com.aliyun.oss.OSS;
5+
import com.aliyun.oss.OSSClientBuilder;
46
import com.aliyun.oss.OSSErrorCode;
57
import com.aliyun.oss.OSSException;
68
import com.aliyun.oss.model.BucketInfo;
@@ -21,6 +23,8 @@
2123
import java.util.List;
2224

2325
public class HnsTest extends TestBase {
26+
private String testHnsBucket;
27+
private OSS testClient;
2428

2529
@Test
2630
public void testBucketRelatedConstructor() {
@@ -84,39 +88,38 @@ public void testObjectRelatedConstructor() {
8488
Assert.assertEquals("dst-obj", renameObjectRequest.getDestinationObjectName());
8589
}
8690

87-
8891
@Override
8992
public void setUp() throws Exception {
9093
super.setUp();
9194
this.testHnsBucket = bucketName + "-test-hns";
95+
this.testClient = new OSSClientBuilder().build("oss-ap-southeast-2.aliyuncs.com", TestConfig.OSS_TEST_ACCESS_KEY_ID,
96+
TestConfig.OSS_TEST_ACCESS_KEY_SECRET);
9297
CreateBucketRequest createBucketRequest = new CreateBucketRequest(testHnsBucket);
9398
createBucketRequest.setHnsStatus(HnsStatus.Enabled);
94-
ossClient.createBucket(createBucketRequest);
99+
testClient.createBucket(createBucketRequest);
95100
}
96101

97-
private String testHnsBucket;
98-
99102
@Override
100103
public void tearDown() throws Exception {
101-
ObjectListing objectListing = ossClient.listObjects(bucketName);
104+
ObjectListing objectListing = testClient.listObjects(testHnsBucket);
102105
List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
103106
for (OSSObjectSummary s : sums) {
104107
System.out.println("\t" + s.getKey());
105108
if (s.getETag() == null || s.getETag().isEmpty()) {
106109
try {
107-
ossClient.deleteDirectory(bucketName, s.getKey().substring(0, s.getKey().length() - 1), true, null);
110+
testClient.deleteDirectory(testHnsBucket, s.getKey().substring(0, s.getKey().length() - 1), true, null);
108111
} catch (Exception e) {
109112
}
110113
} else {
111-
ossClient.deleteObject(bucketName, s.getKey());
114+
testClient.deleteObject(testHnsBucket, s.getKey());
112115
}
113116
}
114117
super.tearDown();
115118
}
116119

117120
@Test
118121
public void testGetHnsStatus() {
119-
BucketInfo info = ossClient.getBucketInfo(this.testHnsBucket);
122+
BucketInfo info = testClient.getBucketInfo(this.testHnsBucket);
120123
Assert.assertEquals(HnsStatus.Enabled.toString(), info.getBucket().getHnsStatus());
121124
}
122125

@@ -126,24 +129,24 @@ public void testRequestWithPayerHeader() {
126129
String dirNameNew = "new-" + dirName ;
127130
CreateDirectoryRequest createDirectoryRequest = new CreateDirectoryRequest(testHnsBucket, dirName);
128131
createDirectoryRequest.setRequestPayer(Payer.Requester);
129-
ossClient.createDirectory(createDirectoryRequest);
130-
ObjectMetadata meta = ossClient.getObjectMetadata(testHnsBucket, dirName);
132+
testClient.createDirectory(createDirectoryRequest);
133+
ObjectMetadata meta = testClient.getObjectMetadata(testHnsBucket, dirName);
131134
Assert.assertEquals("application/x-directory", meta.getContentType());
132135

133136
RenameObjectRequest renameObjectRequest = new RenameObjectRequest(testHnsBucket, dirName, dirNameNew);
134137
renameObjectRequest.setRequestPayer(Payer.Requester);
135-
ossClient.renameObject(renameObjectRequest);
136-
meta = ossClient.getObjectMetadata(testHnsBucket, dirNameNew);
138+
testClient.renameObject(renameObjectRequest);
139+
meta = testClient.getObjectMetadata(testHnsBucket, dirNameNew);
137140
Assert.assertEquals("application/x-directory", meta.getContentType());
138141
try {
139-
meta = ossClient.getObjectMetadata(testHnsBucket, dirName);
142+
meta = testClient.getObjectMetadata(testHnsBucket, dirName);
140143
Assert.fail("should be failed here");
141144
} catch (Exception e) {
142145
}
143146

144147
DeleteDirectoryRequest deleteDirectoryRequest = new DeleteDirectoryRequest(testHnsBucket, dirNameNew);
145148
deleteDirectoryRequest.setRequestPayer(Payer.Requester);
146-
DeleteDirectoryResult deleteDirectoryResult = ossClient.deleteDirectory(deleteDirectoryRequest);
149+
DeleteDirectoryResult deleteDirectoryResult = testClient.deleteDirectory(deleteDirectoryRequest);
147150
Assert.assertEquals(dirNameNew, deleteDirectoryResult.getDirectoryName());
148151
Assert.assertEquals(1, deleteDirectoryResult.getDeleteNumber());
149152
}
@@ -153,31 +156,38 @@ public void testRenameObject() {
153156
String objectName = "test-obj";
154157
String objectNameNew ="new-" + objectName;
155158

156-
ossClient.putObject(testHnsBucket, objectName, new ByteArrayInputStream("123".getBytes()));
157-
ossClient.renameObject(testHnsBucket, objectName, objectNameNew);
158-
ObjectMetadata meta = ossClient.getObjectMetadata(testHnsBucket, objectNameNew);
159+
testClient.putObject(testHnsBucket, objectName, new ByteArrayInputStream("123".getBytes()));
160+
testClient.renameObject(testHnsBucket, objectName, objectNameNew);
161+
ObjectMetadata meta = testClient.getObjectMetadata(testHnsBucket, objectNameNew);
159162
Assert.assertEquals(3, meta.getContentLength());
163+
164+
165+
objectName = "test-obj-1-#+<>中文测试";
166+
objectNameNew ="new-test-obj-1";
167+
testClient.putObject(testHnsBucket, objectName, new ByteArrayInputStream("1234".getBytes()));
168+
testClient.renameObject(testHnsBucket, objectName, objectNameNew);
169+
meta = testClient.getObjectMetadata(testHnsBucket, objectNameNew);
170+
Assert.assertEquals(4, meta.getContentLength());
160171
}
161172

162173
@Test
163174
public void testDeleteDirectory() {
164175
String dirName = "test-dir";
165176
String objectName = "test-obj";
166-
ossClient.createDirectory(testHnsBucket, dirName);
177+
testClient.createDirectory(testHnsBucket, dirName);
167178

168179

169180
for ( int i = 0; i < 100; i ++) {
170-
ossClient.putObject(testHnsBucket, dirName + "/" + objectName + "-" + i, new ByteArrayInputStream("123".getBytes()));
181+
testClient.putObject(testHnsBucket, dirName + "/" + objectName + "-" + i, new ByteArrayInputStream("123".getBytes()));
171182
}
172183

173184
try {
174-
DeleteDirectoryResult deleteDirectoryResult = ossClient.deleteDirectory(testHnsBucket, dirName);
185+
DeleteDirectoryResult deleteDirectoryResult = testClient.deleteDirectory(testHnsBucket, dirName);
175186
} catch (OSSException e) {
176187
Assert.assertEquals(OSSErrorCode.FILE_ALREADY_EXISTS, e.getErrorCode());
177188
}
178189

179-
180-
DeleteDirectoryResult deleteDirectoryResult = ossClient.deleteDirectory(testHnsBucket, dirName, true, null);
190+
DeleteDirectoryResult deleteDirectoryResult = testClient.deleteDirectory(testHnsBucket, dirName, true, null);
181191
String nextToken = deleteDirectoryResult.getNextDeleteToken();
182192
Assert.assertEquals(100, deleteDirectoryResult.getDeleteNumber());
183193
Assert.assertEquals(dirName, deleteDirectoryResult.getDirectoryName());
@@ -186,7 +196,7 @@ public void testDeleteDirectory() {
186196
DeleteDirectoryRequest deleteDirectoryRequest = new DeleteDirectoryRequest(testHnsBucket, dirName)
187197
.withDeleteRecursive(true)
188198
.withNextDeleteToken(nextToken);
189-
deleteDirectoryResult = ossClient.deleteDirectory(deleteDirectoryRequest);
199+
deleteDirectoryResult = testClient.deleteDirectory(deleteDirectoryRequest);
190200
Assert.assertTrue(deleteDirectoryResult.getDeleteNumber() > 0);
191201
Assert.assertEquals(dirName, deleteDirectoryResult.getDirectoryName());
192202

src/test/java/com/aliyun/oss/integrationtests/TestBase.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ public class TestBase {
8181

8282
@BeforeClass
8383
public static void oneTimeSetUp() {
84-
cleanUpAllBuckets(getOSSClient(), BUCKET_NAME_PREFIX);
84+
try {
85+
cleanUpAllBuckets(getOSSClient(), BUCKET_NAME_PREFIX);
86+
} catch (Exception e) {
87+
88+
}
8589
}
8690

8791
@Before
@@ -181,9 +185,13 @@ protected static void deleteBucketWithObjects(OSSClient client, String bucketNam
181185
}
182186

183187
// delete live channels
184-
List<LiveChannel> channels = client.listLiveChannels(bucketName);
185-
for (LiveChannel channel : channels) {
186-
client.deleteLiveChannel(bucketName, channel.getName());
188+
try {
189+
List<LiveChannel> channels = client.listLiveChannels(bucketName);
190+
for (LiveChannel channel : channels) {
191+
client.deleteLiveChannel(bucketName, channel.getName());
192+
}
193+
}
194+
catch (Exception e) {
187195
}
188196

189197
// delete bucket

0 commit comments

Comments
 (0)