gpt4 book ai didi

java - 将文件上传到 EC2 实例上的 S3 - 权限被拒绝

转载 作者:行者123 更新时间:2023-12-01 14:29:00 31 4
gpt4 key购买 nike

所以在我的应用程序中,用户将能够将他们的照片上传到 S3 存储,然后我会将返回的 Url 保存到数据库中。

我遇到的问题是,当我将应用程序部署到我的 Elastic Beanstalk 环境时,由于我在 catalina.out 日志中发现的这个错误,我无法再将照片存储到 S3 存储:

java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at com.common.util.file.FileUtil.convert(FileUtil.java:17)

如何设置权限以便修复此错误?

[编辑]
当我在本地主机上运行应用程序时,我将能够将文件上传到 S3 存储桶中。我在 this link 中使用了此示例代码作为上传文件的实现模板。

这是我用来将多部分文件转换为文件的代码:
public File convert(MultipartFile file) throws IOException {
File convFile = new File(file.getOriginalFilename());
convFile.createNewFile(); // Cause IOException
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes());
fos.close();
return convFile;
}

最佳答案

在您的应用程序中,不要附加 aws 凭据。创建应具有 AWS S3 权限的 IAM 角色。使用 Elastic Beanstalk 启动应用程序时,将此 IAM 角色附加到 EC2 实例。

您的应用程序使用 IAM 角色对 AWS S3 进行身份验证以上传图像。最佳实践是附加具有特定权限的 IAM 角色,以通过 AutoScaling 组或 Elastic Beanstalk 或直接从 EC2 仪表板启动 EC2 实例。

关于java - 将文件上传到 EC2 实例上的 S3 - 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41667916/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com