GSUtil vs PHP RESTful класс - PullRequest
       1

GSUtil vs PHP RESTful класс

0 голосов
/ 13 июня 2011

Мы все знаем, что работа с S3 - это боль: удаление виртуальных каталогов требует удаления всех объектов из пути и т. Д. По крайней мере с RESTful API это так.

Мне было интересно, будет ли какое-либо улучшение производительности, если бы я использовал PHP для вызова GSUtil вместо использования моего собственного класса PHP. Есть ли что-то особенное в том, как GSUtil обрабатывает запросы, или это та же самая оболочка REST?

Основные проблемы, с которыми я сталкиваюсь:

  • удаление больших папок
  • загрузка множества маленьких файлов
  • чтение шагов иерархических данных (например, только файлы и папки по пути /foo, но не их потомки-потомки)

1 Ответ

2 голосов
/ 28 января 2012

По сути, ваш PHP-код и gsutil оба используют интерфейс RESTful (gsutil фактически наслоен поверх библиотеки Python с открытым исходным кодом, называемой boto, которая реализует основную часть интерфейса REST), однако есть несколько причин, чтобы рассмотреть возможность использования gsutil:

  • Gsutil позаботится об аутентификации / авторизации OAuth 2.0.
  • Gsutil выполняет расширение с подстановочными знаками, которое, например, позволит вам удалить все объекты в корзине, просто указав 'gsutil rm gs: // bucket / *'
  • Gsutil имеет множество других функций (получение / установка списков ACL и связанных с ними XML-анализ / сборка, просмотр содержимого сегмента, содержимого объекта дампа и т. Д.), Которые вы должны будете реализовать самостоятельно (или найти в какой-либо другой библиотеке PHP), если вы Обойти gsutil.
  • Gsutil имеет несколько хороших возможностей производительности для вашего варианта использования «загрузка множества маленьких файлов». В частности, опция -m запускает ваши загрузки в параллельных процессах и потоках, что обеспечивает существенное повышение производительности.

Таким образом, вы можете свернуть свой собственный код PHP, но я думаю, что вы справитесь с работой быстрее и получите доступ к большему количеству функций, если будете использовать gsutil.

...