Я пытаюсь использовать aws / aws -sdk- php для загрузки файла в предоставленную клиентом корзину s3.
URL является пользовательским и использует протокол s3 (s3: / /lengthy-url.example.com/path). Я не могу связаться с этим URL в любой известной мне форме, используя http или https.
Когда я пытаюсь загрузить файл с помощью sdk, я получаю эту ошибку: Error executing "PutObject" on "s3://lengthy-url.example.com/path/mundane-file.txt"; AWS HTTP error: cURL error 1: Protocol "s3" not supported or disabled in libcurl
Для полноты, это ошибка, которую я получаю, когда пытаюсь использовать https: Error executing "PutObject" on "https://lengthy-url.example.com/path/mundane-file.txt"; AWS HTTP error: cURL error 6: Could not resolve host: lengthy-url.example.com
Кроме того, я могу загрузить файл, используя aws -cli с следующий URL: aws s3 cp --acl=bucket-owner-full-control ./mundane-file.txt "s3://lengthy-url.example.com/path/mundane-file.txt"
Если это поможет, вот код, который я использую для выполнения вызовов sdk-
$s3 = new S3Client([
'version' => '2006-03-01',
'region' => 'us-east-1',
'credentials' => new Credentials($s3AccessId, $s3AccessSecret),
'endpoint' => 's3://lengthy-url.example.com',
's3BucketEndpoint' => true
]);
$s3->putObject([
'Bucket' => 'path',
'Key' => 'mundane-file.txt',
'Body' => fopen('./mundane-file.txt', 'r'),
'ACL' => 'bucket-owner-full-control'
]);
Могу ли я использовать протокол s3 url с aws / aws -sdk- php? Если да, то как?
Спасибо!
Обновление:
Насколько я понимаю, функция registerStreamWrapper должна обеспечивать поддержку протокола s3 , но я получаю ту же ошибку CURl от PutObject.
Я пытался добавить новый вызов функции в приведенный выше код, но я также устал от следующего ...
В любом случае, это всегда та же ошибка: Error executing "PutObject" on "s3://lengthy-url.example.com/path/mundane-file.txt"; AWS HTTP error: cURL error 1: Protocol "s3" not supported or disabled in libcurl
$s3 = new S3Client([
'version' => '2006-03-01',
'region' => 'us-east-1',
'credentials' => new Credentials($s3AccessId, $s3AccessSecret),
'endpoint' => 's3://lengthy-url.example.com',
's3BucketEndpoint' => true
]);
$s3->registerStreamWrapper();
$myfile = fopen('https://lengthy-url.example.com/path/mundane-file.txt', 'w');
fwrite($myfile, PHP_EOL);
fclose($myfile);
Также:
Может быть полезно знать мою среду.
Это установленный вамп установка работает php 5.6.40 и apache 2.4.39.
Установленная версия aws / aws -sdk- php - 3.134.8.
Могу не интересно, если это проблема с моей настройкой cURL?