如何使用AmazonS3Client上传音频文件

时间:2017-01-26 15:05:10

标签: spring spring-mvc amazon-s3 spring-boot amazon

我在本地计算机上运行了一个Spring Boot应用程序,它具有AnazonS3Client依赖性。

 <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.9.11</version>
 </dependency>

使用AmazonS3Client API我连接到在同一台机器上运行的s3Ninja服务器,我使用以下代码上传文件

@Override
public String write(String baseFolder, String fileName, MultipartFile   multipartFile) {

    String fullName = urlUtils.getFullName(baseFolder, fileName);

    try { 
        PutObjectRequest request = 
                 new PutObjectRequest(
                         getBucket(),
                         fullName,
                         multipartFile.getInputStream(),
                         getObjectMetadata(multipartFile)
                 );
        request.getRequestClientOptions().setReadLimit(10000000);
        s3Client.putObject(request);
    } catch (AmazonClientException | IOException e) {
        throw new RuntimeException(e);
    } 
}

public ObjectMetadata getObjectMetadata(MultipartFile multipartFile){
    ObjectMetadata metaData =  new ObjectMetadata();
    metaData.setContentLength(multipartFile.getSize());
    metaData.setContentType(multipartFile.getContentType());
    return metaData;
}

对于图像,即使尺寸为2MB或更大,此方法也能正常工作,但当我尝试上传任何音频文件时,即使小于1MB,我也会遇到以下问题

Unable to execute HTTP request: Connection reset by peer: socket write error

java.net.SocketException: Connection reset by peer: socket write error

是否有必要使用其他方法发送我的文件?我可以对所有文件类型使用相同的方法吗?

0 个答案:

没有答案