下面列出了org.springframework.core.io.WritableResource#getOutputStream ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
void testUploadFileWithRelativePath() throws Exception {
String bucketName = this.stackResourceRegistry
.lookupPhysicalResourceId("EmptyBucket");
uploadFileTestFile(bucketName, "testUploadFileWithRelativePathParent",
"hello world");
Resource resource = this.resourceLoader.getResource(
S3_PREFIX + bucketName + "/testUploadFileWithRelativePathParent");
assertTrue(resource.exists());
WritableResource childFileResource = (WritableResource) resource
.createRelative("child");
try (OutputStream outputStream = childFileResource.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(outputStream)) {
writer.write("hello world");
}
this.createdObjects.add(childFileResource.getFilename());
InputStream inputStream = childFileResource.getInputStream();
assertNotNull(inputStream);
assertEquals("hello world",
FileCopyUtils.copyToString(new InputStreamReader(inputStream, "UTF-8")));
assertEquals("hello world".length(), childFileResource.contentLength());
}
@Test
public void testWritable() throws Exception {
WriteChannel writeChannel = mock(WriteChannel.class);
when(this.mockStorage.writer(any(BlobInfo.class))).thenReturn(writeChannel);
Assert.assertTrue(this.remoteResource instanceof WritableResource);
WritableResource writableResource = (WritableResource) this.remoteResource;
Assert.assertTrue(writableResource.isWritable());
writableResource.getOutputStream();
}
@Test
void testUploadFileWithMoreThenFiveMegabytes() throws Exception {
String bucketName = this.stackResourceRegistry
.lookupPhysicalResourceId("EmptyBucket");
Resource resource = this.resourceLoader.getResource(
S3_PREFIX + bucketName + "/testUploadFileWithMoreThenFiveMegabytes");
assertTrue(WritableResource.class.isInstance(resource));
WritableResource writableResource = (WritableResource) resource;
OutputStream outputStream = writableResource.getOutputStream();
for (int i = 0; i < (1024 * 1024 * 6); i++) {
outputStream.write("c".getBytes("UTF-8"));
}
outputStream.close();
this.createdObjects.add("testUploadFileWithMoreThenFiveMegabytes");
}
public void uploadFileToS3(File file, String s3Url) throws IOException {
WritableResource resource = (WritableResource) resourceLoader.getResource(s3Url);
try (OutputStream outputStream = resource.getOutputStream()) {
Files.copy(file.toPath(), outputStream);
}
}