0

我们都知道使用 S3 是一件痛苦的事情:删除虚拟目录需要从路径中删除所有对象等。至少使用 RESTful API 是这种情况。

我想知道如果我使用 PHP 调用 GSUtil 而不是使用我自己的 PHP 类,是否会有任何性能改进。GSUtil 处理请求的方式有什么特别之处,还是同一个 REST 包装器?

我遇到的主要问题:

  • 删除大文件夹
  • 上传许多小文件
  • 读取分层数据步骤(例如,仅/foo路径下的文件和文件夹,而不是它们的子-子)
4

1 回答 1

2

从根本上说,您的 PHP 代码和 gsutil 都使用 RESTful 接口(gsutil 实际上位于一个名为 boto 的开源 Python 库之上,该库实现了大部分 REST 接口),但是,考虑使用 gsutil 有几个原因:

  • Gsutil 为您处理 OAuth 2.0 身份验证/授权。
  • Gsutil 进行通配符扩展,例如,您可以通过简单地指定“gsutil rm gs://bucket/*”来删除存储桶中的所有对象
  • Gsutil 有许多其他功能(获取/设置 ACL 和关联的 XML 解析/构建、列出存储桶内容、转储对象内容等),如果您绕过 gsutil,您必须自己实现(或在其他一些 PHP 库中找到)。
  • Gsutil 为您的“上传许多小文件”用例提供了一些不错的性能功能。特别是,-m 选项在并行进程和线程中运行您的上传,这提供了显着的性能提升。

总之,您可以编写自己的 PHP 代码,但我认为如果您利用 gsutil,您会更快地完成工作并获得更多功能。

于 2012-01-28T00:32:18.290 回答