我最近将 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(例如boto3
Python),则无需额外努力即可完成。如果您编写了自己的 S3 库,则必须向其中添加重定向处理。
希望有帮助:)