amazon-web-services - boto如何选择aws区域来创建buckets?

我创建了 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 端点,您仍然可以使用此技术在另一个位置创建存储桶。

要在创建后访问存储桶,您有几个选择:

  • 您可以连接到您创建存储桶的区域中的 S3 端点,然后使用 get_bucket 方法查找您的存储桶并为其获取一个 Bucket 对象。
  • 您可以连接到通用 S3 端点并使用 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 字段中设计更改验证消息

ocaml - 是否可以在 OCaml 中直接将 "type"作为字符串打印出来?

ckeditor - 如何从内联 CKEditor 的可编辑区域中删除边框?