Привет всем. Имеется вот такая связка php + js:
PHP
// получаем объект
try {
return new S3Client([
'version' => 'latest',
'endpoint' => 'https://storage.yandexcloud.net',
'region' => 'ru-central1',
'retries' => 3,
'http' => [
'connect_timeout' => 5,
'timeout' => 10,
],
'credentials' => [
'key' => '',
'secret' => '',
],
]);
} catch (S3Exception $e) {
$errorCode = $e->getAwsErrorCode();
$errorMessage = $e->getAwsErrorMessage();
error_log(print_r($errorCode, true));
error_log(print_r($errorMessage, true));
return false;
}
// в другом методе грузим файлы
$uploader = new MultipartUploader(self::$s3, $filePath, [
'bucket' => '',
'key' => '',
'params' => [
'@http' => [
'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
// log
}
]
],
]);
try {
$result = $uploader->upload();
$fileUrl = $result['ObjectURL'];
} catch (MultipartUploadException $e) {
$error = $e->getMessage();
}
JS:
const xhr = new XMLHttpRequest();
const formData = new FormData();
...
xhr.open('POST', 'url', true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.send(formData);
Сайт на wp, на файлах до 300-500mb все ок, а потом в консоль приходит 504.
Конфиг nginx:
client_max_body_size 1000M;
fastcgi_read_timeout 2000;
php тоже увеличены размеры, тайминги.
С js SDK таких проблем нет, но у нас довольная громоздкая логика проверки и обработки файлов перед сборкой zip, поэтому юзаю php SDK.
Пните плиз в правильном направлении.
PS лог
upstream timed out (60: Operation timed out) while reading response header from upstream