将 Elastic Beanstalk 服务器移至其他区域,无法再访问 s3 存储桶

将 Elastic Beanstalk 服务器移至其他区域,无法再访问 s3 存储桶

我最近将 Elastic Beanstalk 实例从 east1 移到了 east2。但 east1 中仍有一堆私有存储桶。现在我的代码抛出错误并拒绝连接到整个区域的存储桶。我收到此错误

s3.list_objects(bucket:'mp3list') *** Aws::S3::Errors::PermanentRedirect Exception

有没有办法让我位于不同区域的 VPC 后面的 Elastic Beanstalks 访问不同区域的私有存储桶?

答案1

您确实有权访问但你没有处理HTTP 重定向正确。

如果它在 中正常运行,us-east-1我猜您的应用程序会访问https://s3.us-east-1.amazonaws.com/your-bucket/..。现在它在 中运行,us-east-2它可能会尝试访问https://s3.us-east-2.amazonaws.com/your-bucket/..。但是由于存储桶不在 区域中,因此us-east-2您获得 HTTP 重定向到https://s3.us-east-1.amazonaws.com/your-bucket/..您的应用程序必须能够处理此重定向。

您使用什么语言和库来访问存储桶?如果您使用官方 AWS SDK(例如boto3Python),则无需额外努力即可完成。如果您编写了自己的 S3 库,则必须向其中添加重定向处理。

希望有帮助:)

相关内容