#php #amazon-s3
Вопрос:
Я использую AWS S3 PHP SDK.Я читаю данные из файлов, хранящихся на S3, с помощью PHP. Но через некоторое время в процессе я получаю следующие ошибки
AWS HTTP error: Error creating resource: [message] fopen(): SSL operation failed with code 5. OpenSSL Error messages: error:02001018:system library:fopen:Too many open files error:20074002:BIO routines:FILE_CTRL:system lib error:0B06F002:x509 certificate routines:X509_load_cert_file:system lib error:02001018:system library:fopen:Too many open files error:20074002:BIO routines:FILE_CTRL:system lib error:0B06F002:x509 certificate routines:X509_load_cert_file:system lib error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed Severity: Compile Error --gt; require(): Failed opening required '/var/www/project/aws/GuzzleHttp/Exception/ConnectException.php' (include_path='.:/usr/share/php') /var/www/project/aws/aws-autoloader.php 516
ниже приведен код в aws-autoloader.php это приводит к ошибке
spl_autoload_register(function ($class) use ($mapping) { if (isset($mapping[$class])) { require $mapping[$class]; } }, true);
Комментарии:
1. Не могли бы вы, пожалуйста, показать свой код для чтения файла?
Ответ №1:
Если ваш php-код получает доступ к файлам s3 по протоколу HTTPS или SFTP и не имеет возможности проверить действительность SSL-сертификата, вы обычно будете вести себя так.
Чтобы исправить это , вы должны указать в своем php.ini путь к файлу .pem необходимого сертификата. Вот строка для изменения :
;openssl.cafile = "C: mycertification.pem"
Если вы используете сертификацию acm, вы можете экспортировать ее непосредственно из консоли AWS. Вы также можете использовать РОЛЬ IAM для предоставления прямого доступа к вашему php-серверу, чтобы получить его с помощью acm arn.
Я надеюсь, что это может вам помочь