在 EC2 实例上运行时,Spring Boot 将文件上传到 S3 的速度太慢

问题描述

我在 Spring Boot 应用程序中使用 aws-java-sdk(版本 1.11.874)以便将文件上传到 S3。

在我的本地机器上运行时一切正常,上传 75kb 文件需要几毫秒。

但是当我使用相同的配置 aws 帐户将我的应用程序部署到 EC2 (t2.small) 时,应用程序需要 10 多分钟才能上传 75kb 的文件

我的上传功能如下:

public String uploadFile(String keyName,InputStream inputStream,String type) throws NoSuchAlgorithmException,InterruptedException,IOException {
    String newFileName = String.format("%s.%s",Utils.generaterandomString("i"),FilenameUtils.getExtension(keyName) == null ? "" : FilenameUtils.getExtension(keyName));
    if (type.equalsIgnoreCase("avatar")) {
        newFileName = avatarFolder + "avatar/" + newFileName;
    } else {
        newFileName = avatarFolder + newFileName;
    }
    PutObjectRequest request = new PutObjectRequest(bucket,newFileName,inputStream,new ObjectMetadata())
            .withCannedAcl(CannedAccessControlList.PublicRead);
    Upload upload = transferManager.upload(request);
    try {
        upload.waitForCompletion();
        return String.format("https://%s.s3-%s.amazonaws.com/%s",bucket,region,newFileName);
    } catch (AmazonClientException e) {
        log.info(e.getMessage());
    }
    return null;
}

有人可以建议我任何解决方案吗?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)