mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Add missing Apache 2 License
This commit is contained in:
parent
9edab1215b
commit
0de7efabd4
@ -216,6 +216,10 @@ public class OssStorageResource implements WritableResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* create a bucket.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public Bucket createBucket() {
|
public Bucket createBucket() {
|
||||||
return this.oss.createBucket(this.bucketName);
|
return this.oss.createBucket(this.bucketName);
|
||||||
}
|
}
|
||||||
@ -226,33 +230,37 @@ public class OssStorageResource implements WritableResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取一个OutputStream用于写操作。
|
* acquire an OutputStream for write.
|
||||||
* 注意:写完成后必须关闭该流
|
* Note: please close the stream after writing is done
|
||||||
* @return
|
* @return
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public OutputStream getOutputStream() throws IOException {
|
public OutputStream getOutputStream() throws IOException {
|
||||||
if (isBucket()) {
|
if (isBucket()) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalStateException(
|
||||||
"Cannot open an output stream to a bucket: '" + getURI() + "'");
|
"Cannot open an output stream to a bucket: '" + getURI() + "'");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
OSSObject ossObject;
|
OSSObject ossObject;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ossObject = this.getOSSObject();
|
ossObject = this.getOSSObject();
|
||||||
} catch (OSSException ex) {
|
}
|
||||||
if (ex.getMessage() != null && ex.getMessage().startsWith(MESSAGE_KEY_NOT_EXIST)) {
|
catch (OSSException ex) {
|
||||||
ossObject = null;
|
if (ex.getMessage() != null
|
||||||
} else {
|
&& ex.getMessage().startsWith(MESSAGE_KEY_NOT_EXIST)) {
|
||||||
throw ex;
|
ossObject = null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ossObject == null ) {
|
if (ossObject == null) {
|
||||||
if (!this.autoCreateFiles) {
|
if (!this.autoCreateFiles) {
|
||||||
throw new FileNotFoundException("The object was not found: " + getURI());
|
throw new FileNotFoundException(
|
||||||
|
"The object was not found: " + getURI());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -263,7 +271,8 @@ public class OssStorageResource implements WritableResource {
|
|||||||
executorService.submit(() -> {
|
executorService.submit(() -> {
|
||||||
try {
|
try {
|
||||||
OssStorageResource.this.oss.putObject(bucketName, objectKey, in);
|
OssStorageResource.this.oss.putObject(bucketName, objectKey, in);
|
||||||
} catch (Exception ex) {
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
logger.error("Failed to put object", ex);
|
logger.error("Failed to put object", ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2018 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package com.alibaba.alicloud.oss.resource;
|
package com.alibaba.alicloud.oss.resource;
|
||||||
|
|
||||||
import com.aliyun.oss.model.Bucket;
|
import com.aliyun.oss.model.Bucket;
|
||||||
@ -14,67 +30,69 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lich
|
* @author lich
|
||||||
* @date 2019/8/30
|
|
||||||
*/
|
*/
|
||||||
public class DummyOssClient {
|
public class DummyOssClient {
|
||||||
|
|
||||||
private Map<String, byte[]> storeMap = new ConcurrentHashMap<>();
|
private Map<String, byte[]> storeMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private Map<String, Bucket> bucketSet = new HashMap<>();
|
private Map<String, Bucket> bucketSet = new HashMap<>();
|
||||||
|
|
||||||
public String getStoreKey(String bucketName, String objectKey) {
|
public String getStoreKey(String bucketName, String objectKey) {
|
||||||
return String.join(".", bucketName, objectKey);
|
return String.join(".", bucketName, objectKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PutObjectResult putObject(String bucketName, String objectKey, InputStream inputStream) {
|
public PutObjectResult putObject(String bucketName, String objectKey,
|
||||||
|
InputStream inputStream) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
byte[] result = StreamUtils.copyToByteArray(inputStream);
|
byte[] result = StreamUtils.copyToByteArray(inputStream);
|
||||||
storeMap.put(getStoreKey(bucketName, objectKey), result);
|
storeMap.put(getStoreKey(bucketName, objectKey), result);
|
||||||
} catch (IOException ex) {
|
}
|
||||||
throw new RuntimeException(ex);
|
catch (IOException ex) {
|
||||||
} finally {
|
throw new RuntimeException(ex);
|
||||||
try {
|
}
|
||||||
inputStream.close();
|
finally {
|
||||||
} catch (IOException ex) {
|
try {
|
||||||
throw new RuntimeException(ex);
|
inputStream.close();
|
||||||
}
|
}
|
||||||
}
|
catch (IOException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PutObjectResult();
|
||||||
|
}
|
||||||
|
|
||||||
return new PutObjectResult();
|
public OSSObject getOSSObject(String bucketName, String objectKey) {
|
||||||
}
|
byte[] value = storeMap.get(this.getStoreKey(bucketName, objectKey));
|
||||||
|
if (value == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
OSSObject ossObject = new OSSObject();
|
||||||
|
ossObject.setBucketName(bucketName);
|
||||||
|
ossObject.setKey(objectKey);
|
||||||
|
InputStream inputStream = new ByteArrayInputStream(value);
|
||||||
|
ossObject.setObjectContent(inputStream);
|
||||||
|
|
||||||
public OSSObject getOSSObject(String bucketName, String objectKey) {
|
ObjectMetadata objectMetadata = new ObjectMetadata();
|
||||||
byte[] value = storeMap.get(this.getStoreKey(bucketName, objectKey));
|
objectMetadata.setContentLength(value.length);
|
||||||
if (value == null) {
|
ossObject.setObjectMetadata(objectMetadata);
|
||||||
return null;
|
|
||||||
}
|
|
||||||
OSSObject ossObject = new OSSObject();
|
|
||||||
ossObject.setBucketName(bucketName);
|
|
||||||
ossObject.setKey(objectKey);
|
|
||||||
InputStream inputStream = new ByteArrayInputStream(value);
|
|
||||||
ossObject.setObjectContent(inputStream);
|
|
||||||
|
|
||||||
ObjectMetadata objectMetadata = new ObjectMetadata();
|
return ossObject;
|
||||||
objectMetadata.setContentLength(value.length);
|
}
|
||||||
ossObject.setObjectMetadata(objectMetadata);
|
|
||||||
|
|
||||||
return ossObject;
|
public Bucket createBucket(String bucketName) {
|
||||||
}
|
if (bucketSet.containsKey(bucketName)) {
|
||||||
|
return bucketSet.get(bucketName);
|
||||||
|
}
|
||||||
|
Bucket bucket = new Bucket();
|
||||||
|
bucket.setCreationDate(new Date());
|
||||||
|
bucket.setName(bucketName);
|
||||||
|
bucketSet.put(bucketName, bucket);
|
||||||
|
return bucket;
|
||||||
|
}
|
||||||
|
|
||||||
public Bucket createBucket(String bucketName) {
|
public List<Bucket> bucketList() {
|
||||||
if (bucketSet.containsKey(bucketName)) {
|
return new ArrayList<>(bucketSet.values());
|
||||||
return bucketSet.get(bucketName);
|
}
|
||||||
}
|
|
||||||
Bucket bucket = new Bucket();
|
|
||||||
bucket.setCreationDate(new Date());
|
|
||||||
bucket.setName(bucketName);
|
|
||||||
bucketSet.put(bucketName, bucket);
|
|
||||||
return bucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Bucket> bucketList() {
|
|
||||||
return new ArrayList<>(bucketSet.values());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2018 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package com.alibaba.alicloud.oss.resource;
|
package com.alibaba.alicloud.oss.resource;
|
||||||
|
|
||||||
import com.aliyun.oss.OSS;
|
import com.aliyun.oss.OSS;
|
||||||
import com.aliyun.oss.common.utils.IOUtils;
|
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
import org.junit.rules.ExpectedException;
|
||||||
@ -19,7 +34,6 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
import org.springframework.util.StreamUtils;
|
import org.springframework.util.StreamUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
@ -28,200 +42,205 @@ import static org.mockito.Mockito.mock;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lich
|
* @author lich
|
||||||
* @date 2019/8/29
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
public class OssStorageResourceTest {
|
public class OssStorageResourceTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to test exception messages and types.
|
* Used to test exception messages and types.
|
||||||
*/
|
*/
|
||||||
@Rule
|
@Rule
|
||||||
public ExpectedException expectedEx = ExpectedException.none();
|
public ExpectedException expectedEx = ExpectedException.none();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OSS oss;
|
private OSS oss;
|
||||||
|
|
||||||
@Value("oss://aliyun-test-bucket/")
|
@Value("oss://aliyun-test-bucket/")
|
||||||
private Resource bucketResource;
|
private Resource bucketResource;
|
||||||
|
|
||||||
@Value("oss://aliyun-test-bucket/myfilekey")
|
@Value("oss://aliyun-test-bucket/myfilekey")
|
||||||
private Resource remoteResource;
|
private Resource remoteResource;
|
||||||
|
|
||||||
public static byte[] generateRandomBytes(int blen) {
|
public static byte[] generateRandomBytes(int blen) {
|
||||||
byte[] array = new byte[blen];
|
byte[] array = new byte[blen];
|
||||||
new Random().nextBytes(array);
|
new Random().nextBytes(array);
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResourceType() {
|
public void testResourceType() {
|
||||||
assertEquals(OssStorageResource.class, remoteResource.getClass());
|
assertEquals(OssStorageResource.class, remoteResource.getClass());
|
||||||
OssStorageResource ossStorageResource = (OssStorageResource)remoteResource;
|
OssStorageResource ossStorageResource = (OssStorageResource) remoteResource;
|
||||||
assertEquals("myfilekey", ossStorageResource.getFilename());
|
assertEquals("myfilekey", ossStorageResource.getFilename());
|
||||||
assertFalse(ossStorageResource.isBucket());
|
assertFalse(ossStorageResource.isBucket());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testValidObject() throws Exception {
|
public void testValidObject() throws Exception {
|
||||||
assertTrue(remoteResource.exists());
|
assertTrue(remoteResource.exists());
|
||||||
OssStorageResource ossStorageResource = (OssStorageResource)remoteResource;
|
OssStorageResource ossStorageResource = (OssStorageResource) remoteResource;
|
||||||
assertTrue(ossStorageResource.bucketExists());
|
assertTrue(ossStorageResource.bucketExists());
|
||||||
assertEquals(4096L, remoteResource.contentLength());
|
assertEquals(4096L, remoteResource.contentLength());
|
||||||
assertEquals("oss://aliyun-test-bucket/myfilekey", remoteResource.getURI().toString());
|
assertEquals("oss://aliyun-test-bucket/myfilekey",
|
||||||
assertEquals("myfilekey", remoteResource.getFilename());
|
remoteResource.getURI().toString());
|
||||||
}
|
assertEquals("myfilekey", remoteResource.getFilename());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketResource() throws Exception {
|
public void testBucketResource() throws Exception {
|
||||||
assertTrue(bucketResource.exists());
|
assertTrue(bucketResource.exists());
|
||||||
assertTrue(((OssStorageResource)this.bucketResource).isBucket());
|
assertTrue(((OssStorageResource) this.bucketResource).isBucket());
|
||||||
assertTrue(((OssStorageResource)this.bucketResource).bucketExists());
|
assertTrue(((OssStorageResource) this.bucketResource).bucketExists());
|
||||||
assertEquals("oss://aliyun-test-bucket/", bucketResource.getURI().toString());
|
assertEquals("oss://aliyun-test-bucket/", bucketResource.getURI().toString());
|
||||||
assertEquals("aliyun-test-bucket", this.bucketResource.getFilename());
|
assertEquals("aliyun-test-bucket", this.bucketResource.getFilename());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketNotEndingInSlash() {
|
public void testBucketNotEndingInSlash() {
|
||||||
assertTrue(new OssStorageResource(this.oss, "oss://aliyun-test-bucket").isBucket());
|
assertTrue(
|
||||||
}
|
new OssStorageResource(this.oss, "oss://aliyun-test-bucket").isBucket());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSpecifyPathCorrect() {
|
public void testSpecifyPathCorrect() {
|
||||||
OssStorageResource ossStorageResource = new OssStorageResource (
|
OssStorageResource ossStorageResource = new OssStorageResource(this.oss,
|
||||||
this.oss, "oss://aliyun-test-bucket/myfilekey", false);
|
"oss://aliyun-test-bucket/myfilekey", false);
|
||||||
|
|
||||||
assertTrue(ossStorageResource.exists());
|
assertTrue(ossStorageResource.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSpecifyBucketCorrect() {
|
public void testSpecifyBucketCorrect() {
|
||||||
OssStorageResource ossStorageResource = new OssStorageResource(
|
OssStorageResource ossStorageResource = new OssStorageResource(this.oss,
|
||||||
this.oss, "oss://aliyun-test-bucket", false);
|
"oss://aliyun-test-bucket", false);
|
||||||
|
|
||||||
assertTrue(ossStorageResource.isBucket());
|
assertTrue(ossStorageResource.isBucket());
|
||||||
assertEquals("aliyun-test-bucket", ossStorageResource.getBucket().getName());
|
assertEquals("aliyun-test-bucket", ossStorageResource.getBucket().getName());
|
||||||
assertTrue(ossStorageResource.exists());
|
assertTrue(ossStorageResource.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketOutputStream() throws IOException {
|
public void testBucketOutputStream() throws IOException {
|
||||||
this.expectedEx.expect(IllegalStateException.class);
|
this.expectedEx.expect(IllegalStateException.class);
|
||||||
this.expectedEx.expectMessage("Cannot open an output stream to a bucket: 'oss://aliyun-test-bucket/'");
|
this.expectedEx.expectMessage(
|
||||||
((WritableResource) this.bucketResource).getOutputStream();
|
"Cannot open an output stream to a bucket: 'oss://aliyun-test-bucket/'");
|
||||||
}
|
((WritableResource) this.bucketResource).getOutputStream();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketInputStream() throws IOException {
|
public void testBucketInputStream() throws IOException {
|
||||||
this.expectedEx.expect(IllegalStateException.class);
|
this.expectedEx.expect(IllegalStateException.class);
|
||||||
this.expectedEx.expectMessage("Cannot open an input stream to a bucket: 'oss://aliyun-test-bucket/'");
|
this.expectedEx.expectMessage(
|
||||||
this.bucketResource.getInputStream();
|
"Cannot open an input stream to a bucket: 'oss://aliyun-test-bucket/'");
|
||||||
}
|
this.bucketResource.getInputStream();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketContentLength() throws IOException {
|
public void testBucketContentLength() throws IOException {
|
||||||
this.expectedEx.expect(FileNotFoundException.class);
|
this.expectedEx.expect(FileNotFoundException.class);
|
||||||
this.expectedEx.expectMessage("OSSObject not existed.");
|
this.expectedEx.expectMessage("OSSObject not existed.");
|
||||||
this.bucketResource.contentLength();
|
this.bucketResource.contentLength();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketFile() throws IOException {
|
public void testBucketFile() throws IOException {
|
||||||
this.expectedEx.expect(UnsupportedOperationException.class);
|
this.expectedEx.expect(UnsupportedOperationException.class);
|
||||||
this.expectedEx.expectMessage("oss://aliyun-test-bucket/ cannot be resolved to absolute file path");
|
this.expectedEx.expectMessage(
|
||||||
this.bucketResource.getFile();
|
"oss://aliyun-test-bucket/ cannot be resolved to absolute file path");
|
||||||
}
|
this.bucketResource.getFile();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketLastModified() throws IOException {
|
public void testBucketLastModified() throws IOException {
|
||||||
this.expectedEx.expect(FileNotFoundException.class);
|
this.expectedEx.expect(FileNotFoundException.class);
|
||||||
this.expectedEx.expectMessage("OSSObject not existed.");
|
this.expectedEx.expectMessage("OSSObject not existed.");
|
||||||
this.bucketResource.lastModified();
|
this.bucketResource.lastModified();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBucketResourceStatuses() {
|
public void testBucketResourceStatuses() {
|
||||||
assertFalse(this.bucketResource.isOpen());
|
assertFalse(this.bucketResource.isOpen());
|
||||||
assertFalse(((WritableResource) this.bucketResource).isWritable());
|
assertFalse(((WritableResource) this.bucketResource).isWritable());
|
||||||
assertTrue(this.bucketResource.exists());
|
assertTrue(this.bucketResource.exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWritable() throws Exception {
|
public void testWritable() throws Exception {
|
||||||
assertTrue(this.remoteResource instanceof WritableResource);
|
assertTrue(this.remoteResource instanceof WritableResource);
|
||||||
WritableResource writableResource = (WritableResource) this.remoteResource;
|
WritableResource writableResource = (WritableResource) this.remoteResource;
|
||||||
assertTrue(writableResource.isWritable());
|
assertTrue(writableResource.isWritable());
|
||||||
writableResource.getOutputStream();
|
writableResource.getOutputStream();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWritableOutputStream() throws Exception {
|
public void testWritableOutputStream() throws Exception {
|
||||||
String location = "oss://aliyun-test-bucket/test";
|
String location = "oss://aliyun-test-bucket/test";
|
||||||
OssStorageResource resource = new OssStorageResource(this.oss, location, true);
|
OssStorageResource resource = new OssStorageResource(this.oss, location, true);
|
||||||
OutputStream os = resource.getOutputStream();
|
OutputStream os = resource.getOutputStream();
|
||||||
assertNotNull(os);
|
assertNotNull(os);
|
||||||
|
|
||||||
byte[] randomBytes = generateRandomBytes(1203);
|
byte[] randomBytes = generateRandomBytes(1203);
|
||||||
String expectedString = new String(randomBytes);
|
String expectedString = new String(randomBytes);
|
||||||
|
|
||||||
os.write(randomBytes);
|
os.write(randomBytes);
|
||||||
os.close();
|
os.close();
|
||||||
|
|
||||||
InputStream in = resource.getInputStream();
|
InputStream in = resource.getInputStream();
|
||||||
|
|
||||||
byte[] result = StreamUtils.copyToByteArray(in);
|
byte[] result = StreamUtils.copyToByteArray(in);
|
||||||
String actualString = new String(result);
|
String actualString = new String(result);
|
||||||
|
|
||||||
assertEquals(expectedString, actualString);
|
assertEquals(expectedString, actualString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateBucket() {
|
||||||
|
String location = "oss://my-new-test-bucket/";
|
||||||
|
OssStorageResource resource = new OssStorageResource(this.oss, location, true);
|
||||||
|
|
||||||
|
resource.createBucket();
|
||||||
|
|
||||||
/**
|
assertTrue(resource.bucketExists());
|
||||||
* Configuration for the tests.
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
@Import(OssStorageProtocolResolver.class)
|
|
||||||
static class TestConfiguration {
|
|
||||||
|
|
||||||
@Bean
|
}
|
||||||
public static OSS mockOSS() {
|
|
||||||
DummyOssClient dummyOssStub = new DummyOssClient();
|
|
||||||
OSS oss = mock(OSS.class);
|
|
||||||
|
|
||||||
doAnswer(invocation ->
|
/**
|
||||||
dummyOssStub.putObject(
|
* Configuration for the tests.
|
||||||
invocation.getArgument(0),
|
*/
|
||||||
invocation.getArgument(1),
|
@Configuration
|
||||||
invocation.getArgument(2)
|
@Import(OssStorageProtocolResolver.class)
|
||||||
))
|
static class TestConfiguration {
|
||||||
.when(oss).putObject(Mockito.anyString(), Mockito.anyString(), Mockito.any(InputStream.class));
|
|
||||||
|
|
||||||
doAnswer(invocation ->
|
@Bean
|
||||||
dummyOssStub.getOSSObject(
|
public static OSS mockOSS() {
|
||||||
invocation.getArgument(0),
|
DummyOssClient dummyOssStub = new DummyOssClient();
|
||||||
invocation.getArgument(1)
|
OSS oss = mock(OSS.class);
|
||||||
))
|
|
||||||
.when(oss).getObject(Mockito.anyString(), Mockito.anyString());
|
|
||||||
|
|
||||||
doAnswer(invocation -> dummyOssStub.bucketList())
|
doAnswer(invocation -> dummyOssStub.putObject(invocation.getArgument(0),
|
||||||
.when(oss).listBuckets();
|
invocation.getArgument(1), invocation.getArgument(2))).when(oss)
|
||||||
|
.putObject(Mockito.anyString(), Mockito.anyString(),
|
||||||
|
Mockito.any(InputStream.class));
|
||||||
|
|
||||||
doAnswer(invocation -> dummyOssStub.createBucket(invocation.getArgument(0)))
|
doAnswer(invocation -> dummyOssStub.getOSSObject(invocation.getArgument(0),
|
||||||
.when(oss).createBucket(Mockito.anyString());
|
invocation.getArgument(1))).when(oss).getObject(Mockito.anyString(),
|
||||||
|
Mockito.anyString());
|
||||||
|
|
||||||
// prepare object
|
doAnswer(invocation -> dummyOssStub.bucketList()).when(oss).listBuckets();
|
||||||
dummyOssStub.createBucket("aliyun-test-bucket");
|
|
||||||
|
|
||||||
byte[] content = generateRandomBytes(4096);
|
doAnswer(invocation -> dummyOssStub.createBucket(invocation.getArgument(0)))
|
||||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(content);
|
.when(oss).createBucket(Mockito.anyString());
|
||||||
dummyOssStub.putObject("aliyun-test-bucket", "myfilekey", inputStream);
|
|
||||||
|
|
||||||
return oss;
|
// prepare object
|
||||||
}
|
dummyOssStub.createBucket("aliyun-test-bucket");
|
||||||
|
|
||||||
}
|
byte[] content = generateRandomBytes(4096);
|
||||||
|
ByteArrayInputStream inputStream = new ByteArrayInputStream(content);
|
||||||
|
dummyOssStub.putObject("aliyun-test-bucket", "myfilekey", inputStream);
|
||||||
|
|
||||||
|
return oss;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user