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。
配置要使用的 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 会减少操作次数(从而降低费用)。