我创建了 3 个不同的存储桶,1 个使用 aws 管理控制台,2 个使用 boto api。
使用 aws 管理控制台创建的存储桶是在东京地区创建的,而使用 boto 创建的存储桶是在 us-east-1 地区创建的。
当我使用 boto 按存储桶访问时,它如何找到创建存储桶的正确区域。此外,它如何选择在哪个区域创建存储桶。
我已经想到了 boto 源代码中的 connection.py 文件,但我无法理解代码。
非常感谢任何帮助!
最佳答案
您可以通过在 create_bucket
方法中为 location
参数指定一个值来控制新存储桶的位置。例如,要在 ap-northeast-1
区域创建一个存储桶,您可以这样做:
import boto.s3
from boto.s3.connection import Location
c = boto.s3.connect_to_region('ap-northeast-1')
bucket = c.create_bucket('mynewbucket', location=Location.APNortheast)
在此示例中,我连接到 ap-northeast-1
区域中的 S3 端点,但这不是必需的。即使您已连接到通用 S3 端点,您仍然可以使用此技术在另一个位置创建存储桶。
要在创建后访问存储桶,您有几个选择:
get_bucket
方法查找您的存储桶并为其获取一个 Bucket
对象。get_bucket
方法查找您的存储桶。为了使其工作,您需要遵循描述的更受限制的存储桶命名约定 here .这允许通过 virtual hosting
样式寻址访问您的存储桶,例如https://mybucket.s3.amazonaws.com/ .这反过来又允许 DNS 将您的请求解析到正确的 S3 端点。请注意,DNS 记录需要时间来传播,因此如果您在创建存储桶后立即尝试以这种方式对其进行寻址,它可能无法正常工作。请过几分钟再试。https://stackoverflow.com/questions/23239877/
相关文章:
applescript - 如何使用 AppleScript 关闭 MS Office Ribbon
asp.net - 在 RDLC 报告 asp.net 中放置超链接
sql - MSSQL : Display Rows for a Select with Case
vb.net - MeasureText() - SizeF 到英寸
installation - NSIS:MUI_PAGE_INSTFILES 完成后如何自动按下 "
ember.js - 在 Github Pages 上的 Ember.js 中获取没有哈希的 url
cordova - 在 Windows Phone 8 中调用日期时间选择器插件
ruby-on-rails - 在 current_password 字段中设计更改验证消息