Laravel S3 Ошибка частичной загрузки запросов - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь загрузить файл в хранилище объектов DigitalOcean «Spaces» в Laravel 5.5 (в котором используется тот же драйвер, что и в Amazon s3, и следующий пакет: «league / flysystem-aws-s3-v3 ~ 1.0») используя Storage Facade, просто выполнив:

$do_spaces = Storage::disk('spaces');
$this->comment('Uploading to DO Spaces...');
$do_spaces->put($remotepath, file_get_contents($fullpath));

Размер файла составляет около 185 МБ, и я получаю следующую ошибку:

An exception occurred while uploading parts to a multipart upload. The following parts had errors:
- Part 2: Error executing "UploadPart" on "https://BUCKET.ams3.digitaloceanspaces.com/FILEPATH?partNumber=2&uploadId=2~zkVfkAFU2g4GTY8s4JpV53-jXQ7fJSU"; AWS HTTP error: Server error: `PUT https://BUCKET.ams3.digitaloceanspaces.com/FILEPATH?partNumber=2&uploadId=2~zkVfkAFU2g4GTY8s4JpV53-jXQ7fJSU` resulted in a `503 Slow Down` response:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SlowDown</Code>
<Message>Please reduce your request rate.</Message> (truncated...)
SlowDown (server): Please reduce your request rate. - <?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SlowDown</Code>
<Message>Please reduce your request rate.</Message>
<RequestId></RequestId>
</Error>

Это происходит не всегда, на самом деле, чаще всего это работает, но:

  1. Как я могу прочитать из документации S3, вы можете загрузить файл за одну операцию (максимальный размер 5 ГБ), но я не нашел никакой документации о том, как это сделать

  2. Если я буду продолжать многопользовательскую загрузку, как я могу настроить конкретную частоту запросов?

...