JAVA -AWS ACCESS S3 存储桶从 JAVA 应用程序在 EASTIC BEANTALK 上
Posted
技术标签:
【中文标题】JAVA -AWS ACCESS S3 存储桶从 JAVA 应用程序在 EASTIC BEANTALK 上【英文标题】:JAVA -AWS ACCESS S3 BUCKET FROM JAVA APPLICATION ON ELASTIC BEANSTALK 【发布时间】:2020-09-02 05:22:17 【问题描述】:我想将文件从我的 Java Spring 应用程序上传到 S3 存储桶。
在 ./aws/credentials 中配置凭据后,这对我在 localhost 上有效。
但是,我尝试了 Elastic Beanstalk 但无法正常工作。我收到消息“权限被拒绝”。
我配置 aws-elasticbeanstalk-ec2-role 以授予对 AmazonS3FullAccess 的访问权限,并从 Elastic Beanstalk 应用程序的 Sowtware 配置中配置环境属性。
我的初始化 AmazonClient 的代码:
this.s3client = AmazonS3ClientBuilder.standard().withForceGlobalBucketAccessEnabled(true)
.build();
aws-elasticbeanstalk-ec2-角色配置:
View here
我是不是跳过了什么?
【问题讨论】:
您不必为 java sdk 指定凭据提供程序吗?例如,配置文件、角色、环境变量?也许您使用了不正确的提供商? @Marcin 我指定了“并从 Elastic Beanstalk 应用程序的 Sowtware 配置中配置环境属性。”。我是不是做错了什么? 对 Java sdk 不是很熟悉,但请记住 ppl 在使用错误提供程序时会遇到问题。不知道它是否适用于这里,只是为您考虑。 【参考方案1】:您是否检查了 ec2 上的安全组?因为您可能知道 ElasticBeanstalk 也会创建 EC2 实例。也许您阻止了出站流量?
【讨论】:
所有流量都设置了出站规则。【参考方案2】:您似乎没有在 Elastic Beanstalk 上设置环境变量并正确设置服务客户端。阅读此 AWS 教程。它向您展示了如何从 Spring Boot 应用程序与 Amazon S3 进行交互。
Creating an example AWS photo analyzer application using the AWS SDK for Java
【讨论】:
以上是关于JAVA -AWS ACCESS S3 存储桶从 JAVA 应用程序在 EASTIC BEANTALK 上的主要内容,如果未能解决你的问题,请参考以下文章
Amazon S3 存储桶中缺少 Access-Control-Allow-Origin 标头
S3:调用GetObject操作时发生错误(AccessDenied):Access Denied
从签名的 S3 URL 获取数据:`不存在 'Access-Control-Allow-Origin' 标头`
(python) Spark .textFile(s3://...) access denied 403 with valid credentials