Удалите много объектов из корзин S3 застряли. Почему? - PullRequest
3 голосов
/ 15 сентября 2011

Я использую необработанный API для удаления объектов S3. Для меня нормально работает удаление от 20 до 30 объектов. Если я выполняю массовое удаление, например, более 100 или 200 не отвечает.

Я не хочу удалять корзину S3. Для 80–100 объектов я получаю результат, после чего не получаю результат в php. Объекты не удаляются из S3. Я не знаю почему?

Редактировать

Я реализовал идею Теодора Р. Смита. Элакису также дали ту же идею. Но Теодор немного кратковременен. Смотрите мой результат ниже.

Бесполезно. Я положил файл записи в свой конец для отслеживания статуса. Я выбрал 53 файла и запустил удаление. Но он остановился после 40 объектов. Затем sarted с 0kb файлами из 105 он остановился на 30 Assets.In файлазапись Я получаю значения для удаления объекта 105 - S3 deleted Started09:02:34, а 30-е удаление заканчивается на Completed S3 Delete 09:02:44. Затем 31-е удаление S3 началось на Started S3 Delete 09:02:44 Но результат от S3 не был получен.

Все, что япропустил, пожалуйста, дайте мне знать.Я не получил результат до сих пор.

У вас есть идеи?

Обновление

Решение:

Наконец-то Исправлена ​​моя проблема с помощью следующего API

https://raw.github.com/tylerhall/php-aws/master/class.s3.php

Теперь работает нормально. Удалено более 100 объектов, которые получили хороший результат за секунды.Проверено также с помощью S3fox. Отлично!

Спасибо всем за ответ на вопрос

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

Попробуйте это:

В верхней части кода поместите это:

set_time_limit(0);

Затем возьмите цикл, в котором вы делаете запросы, и спите (5) после каждых 50. Используйте кодif ($requestCount % 50 === 0) { sleep(5); }

Пожалуйста, внесите эти два изменения и сообщите.

0 голосов
/ 03 ноября 2011

Звучит так, как будто сценарий истекает или не завершает выполнение каким-либо образом.

Отобразите что-то внизу вашего скрипта и посмотрите, отображается ли оно.

Если это непроблема тайм-аута, проверьте ваши журналы ошибок php.

С большой натяжкой это может быть своего рода «защита молотком».В целях отладки попробуйте поставить sleep(1); между каждым удалением и посмотреть, будет ли оно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...