微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。