我最近将我的 Elastic Beanstalk 实例从east1 移到了east2。但是east1里还有一堆私有的bucket。现在我的代码抛出错误并拒绝连接到整个区域的存储桶。我收到这个错误
s3.list_objects(bucket:'mp3list') *** Aws::S3::Errors::PermanentRedirect Exception
有没有办法让位于不同区域中的 VPC 后面的 Elastic Beanstalks 访问不同区域中的私有存储桶?
我最近将我的 Elastic Beanstalk 实例从east1 移到了east2。但是east1里还有一堆私有的bucket。现在我的代码抛出错误并拒绝连接到整个区域的存储桶。我收到这个错误
s3.list_objects(bucket:'mp3list') *** Aws::S3::Errors::PermanentRedirect Exception
有没有办法让位于不同区域中的 VPC 后面的 Elastic Beanstalks 访问不同区域中的私有存储桶?
您确实有权访问存储桶,但您没有正确处理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 开发工具包(例如
boto3
Python),这应该无需任何额外的努力即可工作。如果您编写了自己的 S3 库,则必须向其中添加重定向处理。希望有帮助:)