Ошибка исчерпания памяти в Digital Ocean Spaces (AWS S3)
У меня возникают проблемы с запуском клиентских функций AWS S3, и он занимает так много памяти (генерируя «Разрешенный размер памяти 3670016000 байт исчерпан»). У меня есть следующий фрагмент кода ниже
Вещи, которые я пробовал:
- Установите версию "2006-03-01"
- Размещение ложной конечной точки (это приводит к выводу ошибки хоста)
- Другой регион (вывод ошибки региона)
Я бы предположил, что экземпляр клиента работает хорошо, учитывая эти ответы при изменении конфигурации
В настоящее время у меня есть 2 пробела (1 пусто, а 1 содержит около 60 ГБ файлов - оба находятся в одном регионе и в одной учетной записи)
public $config = [
's3-access' => [
'key' => 'some key',
'secret' => 'some secret',
'region' => 'ap-southeast-1',
'version' => 'latest',
'endpoint' => 'sgp1.digitaloceanspaces.com',
]
];
public function createInstance(){
$client = new S3Client([
'credentials' => [
'key' => $this->config['s3-access']['key'],
'secret' => $this->config['s3-access']['secret']
],
'version' => $this->config['s3-access']['version'],
'region' => $this->config['s3-access']['region'],
'endpoint' => $this->config['s3-access']['endpoint']
]);
//Blank array result
$spaces = $client->listBuckets();
foreach ($spaces['Buckets'] as $space){
echo $space['Name']."\n";
}
//Memory size error exception with peak memory usage to 2813mb, allocated 3500mb
$client->createBucket([
'Bucket' => 'test-space-102201',
]);
//list objects also generated the memory error
}
Изменить: после настройки режима отладки в конфигурации AWS S3 я получил следующий ответ
-> Ввод шага init, назовите 'idempotency_auto_fill' ---------------------------------------- ----------- команда была установлена в массив (3) {["instance"]=> string(32) "000000007fb4cf920000000012b9d6de" ["name"]=> string(11) "ListBuckets" ["params"]=> массив (2) {["@http"]=> массив (1) {["debug"]=> ресурс (307) типа (поток)} ["@context"]=> массив (0) {}}} запрос был установлен в массив (0) {} -> Ввод шага init, имя 's3.ssec' ---------------------- --------------- без изменений -> Ввод шага init, имя 's3.source_file' --------------------- ----------------------- без изменений -> Ввод шага init, имя 's3.save_as' ------------- --------------------------- без изменений -> Вход в шаг init, имя s3.location'----------------------------------------- без изменений -> Ввод шага init , имя 's3.auto_encode' ------------------------------------------- - без изменений -> Ввод инициализации шага, имя 's3.head_object' ----------------------------------- --------- без изменений -> Ввод подтверждения шага, имя «проверка» ----------------------------- --------------- без изменений -> Ввод проверки шага, имя 'input_validation_middleware' ----------------------- -------------------------------------- без изменений -> Вводим шаг сборки, назовем 'builder' -------------------------------------- request.instance был установлен на 000000007fb4cf300000000012b9d6de request.method был установлен to GET request.headers был установлен на array(1) {["X-Amz-Security-Token"]=> string(7) "[TOKEN]"} запрос.путь был установлен на sgp1.digitaloceanspaces.com -> Вход в этап сборки, назовите ApiCallMonitoringMiddleware ------------------------------- --------------------------- без изменений -> Ввод сборки шага, имя '' ------------------------------- request.instance изменен с 000000007fb4cf300000000012b9d6de на 000000007fb4cf2c0000000012b9d6de request.headers.User-Agent был установлен на array(1) {[0]=> string(56) "aws-sdk-php/3.178.6 OS/Linux/3.10.0-1127.19.1.el7.x86_64"} -> Ввод сборки шага, назовите 'endpoint_parameter' ------------ ------------------------------------- без изменений -> Ввод шага сборки, имя s3.checksum'------------------------------------------ без изменений -> Ввод шага сборки , имя 's3.content_type' ------------------------------------------- --- без изменений ->Вводя сборку шага, назовите s3.endpoint_middleware ---------------------------------------- ------------- без изменений -> Ввод сборки шага, имя 's3.bucket_endpoint_arn' ----------------------- ------------------------------ без изменений -> Знак шага ввода, имя StreamRequestPayloadMiddleware -------- -------------------------------------------------- - без изменений -> Ввод знака шага, имя 'invocation-id' ------------------------------------------- request.instance изменен с 000000007fb4cf2c0000000012b9d6de на 000000007fb4cf280000000012b9d6de request.headers.aws-sdk-invocation-id был установлен на array(1) {[0]=> string (32) "03e4030ef1f4bfd82b34d> Ввод знака шага, имя 'retry' ----------------------------------- запрос.экземпляр изменен с 000000007fb4cf280000000012b9d6de на 000000007fb4cf270000000012b9d6de request.headers.aws-sdk-retry был установлен на массив (1) {[0]=> строка (3) "0/0"} -> Знак шага ввода, имя 'подписывающее лицо' ----------------------------------- request.instance изменен с 000000007fb4cf270000000012b9d6de на 000000007fb4cf340000000012b9d6de request.headers.x-amz-content-sha256 был установлен в массив (1) {[0]=> string (64) "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} request.headers.X-Amz-Date был установлен в массив (1) string {[0]=> "20210423T110304Z"} request.headers.Authorization был установлен в массив (1) {[0]=> string (211) "AWS4-HMAC-SHA256 Credential = [KEY] / 20210423 /ap-southeast-1/ s3 /aws4_request, SignedHeaders=x-amz-content-sha256;x-amz-date, Подпись = [ПОДПИСЬ]} ->Ввод знака шага, имя 's3.put_object_url' ---------------------------------------- ------- без изменений -> Ввод знака шага, имя 's3.permanent_redirect' ----------------------------- ---------------------- без изменений -> Попытка входа на шаг, назовите ApiCallAttemptMonitoringMiddleware ---------------- -------------------------------------------------- - без изменений * Попытка 103.253.144.208:80 ... * Подключено к sgp1.digitaloceanspaces.com (103.253.144.208) порт 80 (# 0)> GET / HTTP / 1.1 Хост: sgp1.digitaloceanspaces.com aws-sdk-invocation -id: 03e4030ef1f4fd18f7d38b8265b34b7f AWS-СДК-повторов: 0/0 х-AMZ-контент-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Дата: 20210423T110304Z Авторизация: AWS4-HMAC-sHA256 удостоверени = [КЛЮЧ] / 20210423 / ар-юго-восток-1 / s3 / aws4_request,SignedHeaders = x-amz-content-sha256; x-amz-date, Signature=[SIGNATURE] User-Agent: aws-sdk-php/3.178.6 OS/Linux/3.10.0-1127.19.1.el7.x86_64 GuzzleHttp/7 * Пометить пакет как не поддерживающий многократное использование <HTTP/1.1 302 Найдено <content-length: 0 <location:https://sgp1.digitaloceanspaces.com/<cache-control: no-cache <* Соединение №0 с хостом sgp1.digitaloceanspaces.com оставлено нетронутым * Попытка 103.253.144.208:443... * Соединение с sgp1.digitaloceanspaces.com (103.253.144.208) порт 443 (№1 ) * ALPN, предлагая http/1.1 * успешно установить местоположения проверки сертификата: * CAfile: /etc/pki/tls/certs/ca-bundle.crt * CApath: none * SSL-соединение с использованием TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN, сервер сделал не согласен с протоколом * Сертификат сервера: * тема: C=US; ST= Нью-Йорк; L= Нью-Йорк; O=DigitalOcean, LLC; CN=*. Sgp1.digitaloceanspaces.com * дата начала: 6 ноября 00:00:00 2020 GMT * дата истечения срока действия: 7 декабря 23:59:59 2021 GMT * subjectAltName: хост "sgp1.digitaloceanspaces.com" сопоставил сертификат "sgp1.digitaloceanspaces.com"* эмитент: C= США; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1 * Подтверждение сертификата SSL в порядке. >GET / HTTP/1.1 Host: sgp1.digitaloceanspaces.com AWS-СДК-вызов-идентификатор: 03e4030ef1f4fd18f7d38b8265b34b7f AWS-СДК-повторы: 0/0 х-АМЗ-контент sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20210423T110304Z User-Agent: aws-sdk-php/3.178.6 OS/Linux/3.10.0-1127.19.1.el7.x86_64 GuzzleHttp/7 * старый идентификатор сеанса SSL устарел, удаляется * Пометить пакет как не поддерживающий многоразовое использование <HTTP/1.1 200 OK < дата: пт, 23 апр 2021 г., 11:03:07 GMT <content-length: 215 <content-type: text/xml; charset=utf-8 <строгая безопасность транспорта: максимальный возраст =15552000; includeSubDomains; preload <* Соединение №1 с хостом sgp1.digitaloceanspaces.com оставлено нетронутым <- Попытка выхода из шага, назовите 'ApiCallAttemptMonitoringMiddleware'-------------------------------------------------- ---------------- результат был установлен в массив (2) {["instance"]=> string(32) "000000007fb4cf360000000012b9d6de" ["data"]=> array(3) {["Buckets"]=> array(0) {} ["Owner"]=> array(2) {["DisplayName"]=> строка (0) "" ["ID"]=> строка (9) "анонимный"} ["@metadata"]=> массив (4) {["statusCode"]=> int(200) ["effectiveUri"]=> строка (27) "sgp1.digitaloceanspaces.com" ["заголовки"]=> array(4) {["date"]=> string(29) "Пт, 23 апреля 2021 г., 11:03:07 GMT" ["content-length"]=> string(3) "215" ["content-type"]=> string(23)"text/xml; charset=utf-8"["strict-transport-security"]=> string(44) "max-age=15552000; includeSubDomains; preload"} ["transferStats"]=> array(0) {}}}} Время инклюзивного шага: 0,024339914321899 <- Знак шага выхода, имя 's3. постоянный_редирект '------------------------------------------------ - без изменений Включенное время шага: 0,024394989013672 <- Знак выхода из шага, имя 's3.put_object_url' ----------------------------- ----------------- без изменений Время включения: 0,02444314956665 <- Знак шага при выходе, имя «подписывающее лицо» ---------------- ------------------- без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' -------------- -------------------- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ----------- -------------------------------string (44) "max-age = 15552000; includeSubDomains; preload"} ["transferStats"]=> array(0) {}}}} Время инклюзивного шага: 0,024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' - ------------------------------------------------- нет изменения Время включения: 0,024394989013672 <- Знак выхода, имя 's3.put_object_url' -------------------------------- -------------- без изменений Включенное время шага: 0,02444314956665 <- Знак шага выхода, имя 'подписывающее лицо' ------------------- ---------------- без изменений Время включения: 0,024537086486816 <- Знак выхода из шага, имя 'retry' ----------------- ----------------- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' -------------- ----------------------------string (44) "max-age = 15552000; includeSubDomains; preload"} ["transferStats"]=> array(0) {}}}} Время инклюзивного шага: 0,024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' - ------------------------------------------------- нет изменения Время включения: 0,024394989013672 <- Знак выхода, имя 's3.put_object_url' -------------------------------- -------------- без изменений Включенное время шага: 0,02444314956665 <- Знак шага выхода, имя 'подписывающее лицо' ------------------- ---------------- без изменений Время включения: 0,024537086486816 <- Знак выхода, имя 'retry' ----------------- ----------------- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' -------------- ----------------------------max-age = 15552000; includeSubDomains; preload "} [" transferStats "]=> array(0) {}}}} Время включения: 0,024339914321899 <- Знак выхода, имя 's3.permanent_redirect' -------------- ------------------------------------ без изменений Время включения: 0,024394989013672 <- Знак выхода, имя 's3.put_object_url' --------------------------------------------- - без изменений Включенное время шага: 0,02444314956665 <- Знак выхода из шага, имя «подписывающее» -------------------------------- --- без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' ------------------------------ ---- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' --------------------------- ---------------max-age = 15552000; includeSubDomains; preload "} [" transferStats "]=> array(0) {}}}} Время включения: 0,024339914321899 <- Знак выхода, имя 's3.permanent_redirect' -------------- ------------------------------------ без изменений Время включения: 0,024394989013672 <- Знак выхода, имя 's3.put_object_url' --------------------------------------------- - без изменений Включенное время шага: 0,02444314956665 <- Знак выхода из шага, имя «подписывающее лицо» -------------------------------- --- без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' ------------------------------ ---- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' --------------------------- ---------------} ["transferStats"]=> array(0) {}}}} Время инклюзивного шага: 0,024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' ---------------- ---------------------------------- без изменений Включенное время шага: 0,024394989013672 <- Знак выхода из шага, имя 's3 .put_object_url '---------------------------------------------- нет Изменения Включенное время шага: 0,02444314956665 <- Знак выхода из шага, имя 'подписывающее лицо' ---------------------------------- - без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' -------------------------------- - без изменений Включенное время шага: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ----------------------------- -------------} ["transferStats"]=> array(0) {}}}} Время инклюзивного шага: 0,024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' ---------------- ---------------------------------- без изменений Включенное время шага: 0,024394989013672 <- Знак выхода из шага, имя 's3 .put_object_url '---------------------------------------------- нет Изменения Включенное время шага: 0,02444314956665 <- Знак выхода из шага, имя 'подписывающее лицо' ---------------------------------- - без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' -------------------------------- - без изменений Включенное время шага: 0,026021003723145 <- Знак выхода из шага, имя 'invocation-id' ----------------------------- -------------024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' ------------------------------------- ------------- без изменений Время включения: 0.024394989013672 <- Знак выхода, имя 's3.put_object_url' ------------------ ---------------------------- без изменений Время включения: 0,02444314956665 <- Знак шага при выходе, имя 'подписывающее лицо' ----- ------------------------------ без изменений Время включения: 0,024537086486816 <- Знак выхода, имя 'retry' --- ------------------------------- без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ------------------------------------------024339914321899 <- Знак шага выхода, имя 's3.permanent_redirect' ------------------------------------- ------------- без изменений Время включения: 0.024394989013672 <- Знак выхода, имя 's3.put_object_url' ------------------ ---------------------------- без изменений Время включения: 0,02444314956665 <- Знак шага выхода, имя 'подписывающее лицо' ----- ------------------------------ без изменений Время включения: 0,024537086486816 <- Знак выхода, имя 'retry' --- ------------------------------- без изменений Время включения: 0,026021003723145 <- Знак выхода из шага, имя 'invocation-id' ------------------------------------------024394989013672 <- Знак шага выхода, имя 's3.put_object_url' ------------------------------------- --------- без изменений Включенное время шага: 0,02444314956665 <- Знак шага выхода, имя «подписывающее лицо» ------------------------ ----------- без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' ---------------------- ------------ без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ------------------- -----------------------024394989013672 <- Знак шага выхода, имя 's3.put_object_url' ------------------------------------- --------- без изменений Время включения: 0,02444314956665 <- Знак шага выхода, имя «подписывающее лицо» ------------------------ ----------- без изменений Включенное время шага: 0,024537086486816 <- Знак выхода из шага, имя 'retry' ---------------------- ------------ без изменений Время включения: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ------------------- -----------------------retry '---------------------------------- без изменений Время включения шага: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ------------------------------------------retry '---------------------------------- без изменений Время включения шага: 0,026021003723145 <- Знак выхода, имя 'invocation-id' ------------------------------------------result.data. @ metadata.transferStats.httpбыло установлено значение array(1) {[0]=> array (0) {}} Время инклюзивного шага: 0,026099920272827 <- Знак шага выхода, имя StreamRequestPayloadMiddleware --------------- -------------------------------------------- Без изменений Включенное время шага: 0.026165008544922 <- Завершение сборки шага, имя 's3.bucket_endpoint_arn' ------------------------------------- --------------- без изменений Включенное время шага: 0.026195049285889 <- Завершение сборки шага, имя 's3.endpoint_middleware' ---------------- ------------------------------------ без изменений Включенное время шага: 0.026221990585327 <- Завершение сборки шага, имя 's3.content_type' --------------------------------------------- без изменений Включенное время шага: 0,026258945465088 <- Завершение сборки шага, имя 's3.checksum'----------------------------------------- без изменений Включая время шага: 0,026288986206055 <- На выходе из шага сборки назовите endpoint_parameter ------------------------------------------ ------ без изменений Включенное время шага: 0,026321887969971 <- Завершение сборки шага, имя '' ---------------------------- - без изменений Включенное время шага: 0.026376008987427 <- Завершение сборки шага, назовите ApiCallMonitoringMiddleware ------------------------------- -------------------------- без изменений Включенное время шага: 0,026448011398315 <- Завершение сборки шага, имя 'builder' ------- ------------------------------ без изменений Включенное время шага: 0,027688980102539 <- Завершение проверки шага, имя 'input_validation_middleware' --- -------------------------------------------------- ------- без изменений Время включения: 0.028922080993652 <- Завершение шага проверки, имя 'проверка' --------------------------------------- ---- без изменений Включенное время шага: 0,028947114944458 <- Выход из шага init, имя 's3.head_object' --------------------------- ---------------- без изменений Время включения: 0.028982877731323 <- Выход из шага init, имя 's3.auto_encode' --------------- ---------------------------- без изменений Время включения: 0,029003858566284 <- Выход из инициализации шага, имя 's3.location' --- ------------------------------------- без изменений Время включения шага: 0,02902889251709 <- Выход из инициализации шага, name 's3.save_as' --------------------------------------- без изменений Включая время шага : 0.029052972793579 <- Выход из шага init, имя 's3.source_file'------------------------------------------- без изменений Включая время шага: 0,029078006744385 <- Выход из шага init, имя 's3.ssec' ------------------------------------ без изменений Время инклюзивного шага: 0,029115915298462 <- Выход из шага init, имя 'idempotency_auto_fill' ----------------------------------- --------------- без изменений Включая время шага: 0,029443979263306