Cloud Storage API

概览

Cloud Storage 提供两个 API:XML 和 JSON API。Gsutil 可以与这两个 API 进行交互。默认情况下,从 4.0 起所有 gsutil 版本均与 JSON API 进行交互。如果无法使用其中一个 API 执行命令(例如,XML API 不支持通知命令),则 gsutil 将以静默方式回退至使用另外一个 API。此外,在与仅支持该 API 的云存储空间服务进行交互时,gsutil 会自动回退至使用该 XML API。

如需了解详情,请参阅 JSON APIXML API 的相关文档。

配置要使用的 API

如需使用特定 API 与 Cloud Storage 进行交互,您可以将 .boto 配置文件“GSUtil”部分中的“prefer_api”变量设置为“xml”或“json”,如下所示:

prefer_api = json

这将导致 gsutil 尽可能使用该 API(在上述情况下回退至使用另一个 API)。这同样适用于 gsutil 测试命令;它会针对首选 API 运行集成测试。

如需了解详情,请参阅 Boto 配置文件文档。

两个 API 的性能和费用差异

XML API 使用 boto 框架。该框架会重新读取下载的文件,以计算 MD5 哈希值(如果不存在 MD5 哈希值)。如果对象未在元数据中包含 MD5 哈希值(例如 Cloud Storage 复合对象),这会导致下载所需的带宽和所用时间翻倍。因此,如果您使用的是复合对象,我们建议您使用默认的 prefer_api 值。

XML API 还需要通过单独调用来获取不同的对象和存储分区元数据字段,例如 ACL 或存储分区配置。因此,尽量使用 JSON API 会减少操作次数(从而降低费用)。