Я пытаюсь загрузить файл в «Spaces» хранилища объектов DigitalOcean в Laravel 5.5 (в котором используется тот же драйвер, что и в Amazon s3, и в следующем пакете: «league / flysystem-aws-s3-v3 ~ 1.0»), используя хранилище Фасад, просто делая:
$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>
На самом деле, это происходит не всегда, а в большинстве случаев, но:
Как я могу прочитать из документации S3, вы можете загрузить файл за одну операцию (максимальный размер 5 ГБ), но я не нашел никакой документации о том, как это сделать.
Предполагая, что я продолжу с multipart-upload, как я могу настроить конкретную частоту запросов?
Задача ещё не решена.
Других решений пока нет …