0

S3 を操作するのが面倒であることは誰もが知っています。仮想ディレクトリを削除するには、パス内からすべてのオブジェクトを削除する必要があります。少なくとも RESTful API ではこれが当てはまります。

独自の PHP クラスを使用するのではなく、PHP を使用して GSUtil を呼び出すと、パフォーマンスが向上するかどうか疑問に思っていました。GSUtil がリクエストを処理する方法に何か特別なものはありますか、それとも同じ REST ラッパーですか?

私が抱えている主な問題:

  • 大きなフォルダの削除
  • 多くの小さなファイルをアップロードする
  • 階層データの読み取りステップ (例:/fooパスの下のファイルとフォルダーのみで、その子-子は除く)
4

1 に答える 1

2

基本的に、PHP コードと gsutil はどちらも RESTful インターフェースを使用しています (gsutil は、実際には、REST インターフェースの大部分を実装する boto と呼ばれるオープン ソースの Python ライブラリの上に階層化されています)。ただし、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 に答える