У меня есть проект Laravel, который ежедневно создает новую резервную копию с помощью spatie / laravel-backup и загружает ее в s3. Он правильно настроен и работает без проблем более года.
Неожиданно резервная копия не может завершить процесс загрузки из-за следующей ошибки:
Copying zip failed because: An exception occurred while uploading parts to a multipart upload. The following parts had errors:
- Part 17: Error executing "UploadPart" on "https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=17&uploadId=uploadId"; AWS HTTP error: cURL error 55: SSL_write() returned SYSCALL, errno = 104 (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) (server): 100 Continue -
- Part 16: Error executing "UploadPart" on "https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=16&uploadId=uploadId"; AWS HTTP error: Client error: `PUT https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=16&uploadId=uploadId` resulted in a `400 Bad Request` response:
<?xml version="1.0" encoding="UTF-8"?>
<Code>RequestTimeout</Code><Message>Your socket connection to the server w (truncated...)
RequestTimeout (client): Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed. - <?xml version="1.0" encoding="UTF-8"?>
<Code>RequestTimeout</Code>
<Message>Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed.</Message>
<RequestId>RequestId..</RequestId>
<HostId>Host id..</HostId>
Я попытался запустить:
php artisan backup:run --only-db // 110MB zip file
php artisan backup:run --only-files // 34MB zip file
И они оба работают правильно. Я предполагаю, что ошибка вызвана полным размером почтового индекса (около 145 МБ), что объясняет, почему это никогда не происходило раньше (когда размер резервной копии был меньше). В пакете laravel-backup есть связанная проблема , но я не думаю, что это проблема библиотеки, которая просто использует базовый интерфейс flysystem s3 для загрузки zip.
Есть ли какой-то параметр, который я должен установить для php.ini
(например, чтобы увеличить размер загружаемого файла завитка), или система для разделения файла на несколько частей?