AWS SDK PHP S3Client putObject зависает

У меня есть сценарий, который генерирует множество файлов XML и загружает их один за другим в S3 с помощью этого базового кода:

    $this->awsFactory->getS3Client()->putObject([
        'Bucket' => $bucketName,
        'Key'    => $key,
        'Body'   => $xml,
        'ACL'    => 'public-read',
        '@http' => [
            'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
                printf(
                    "%s/%s uploaded.\n",
                    $ul,
                    $expectedUl
                );
            }
        ]
    ]);

(Я добавил обратный вызов из-за своей проблемы)

Иногда случайным образом загрузка останавливается и никогда не истекает. Иногда он перезапускается через несколько минут, иногда нет. Это может произойти после 60 файлов или после более чем 150 файлов, совершенно случайно

Вот пример обратного вызова:

0/0 uploaded.
0/2128256 uploaded.
16384/2128256 uploaded.
16384/2128256 uploaded.
32768/2128256 uploaded.
32768/2128256 uploaded.
49152/2128256 uploaded.
// ...
// (it start normally)
// And at a moment, the upload stop send datas
// ...
1048576/2128256 uploaded.
1064960/2128256 uploaded.
1064960/2128256 uploaded.
1081344/2128256 uploaded.
1081344/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
1097728/2128256 uploaded.
// ...

он застрял на 1097728/2128256, и я получил тысячи одинаковых строк

Есть идеи о том, что случилось?

Спасибо за помощь :)

какой полный код? как вы генерируете xml? может быть проблема с памятью из-за того, что не освобождаются большие переменные $ xml?

Oras 09.08.2018 11:04

Память слежу, она всего на 63.1Мб. Длина строки $ xml составляет примерно 2100000 символов каждая.

Bouffe 09.08.2018 11:29

Полный код - это приложение Symfony, xml визуализируется с помощью Twig

Bouffe 09.08.2018 11:30

вы пробовали использовать обещание? docs.aws.amazon.com/sdk-for-php/v3/developer-guide/…

Oras 09.08.2018 14:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
166
0

Другие вопросы по теме