Клиентская библиотека RiakCS S3 PHP

Есть ли какая-нибудь клиентская библиотека RiakCS S3 PHP? Лучшее, что я смог найти, это клиентское программное обеспечение командной строки S3cmd.

Также я видел, что есть Riak PHP Client, но похоже, что ничего не связано с S3.

Я установил https://github.com/aws/aws-sdk-php-laravel и использовал те же учетные данные, что и для RiakCS S3, но, похоже, он не работает. Сообщение об ошибке ниже:

The AWS Access Key Id you provided does not exist in our records.

Спасибо за любое руководство или совет.

2 ответа

Решение

На самом деле, если вы используете Riak, это не будет прокси, это будет совершенно другая конечная точка. Таким образом, вы должны сделать это таким образом с base_url опция:

$s3 = S3Client::factory([
    'base_url'       => 'http://127.0.0.1:8080',
    'region'         => 'my-region',
    'key'            => 'my-key',
    'secret'         => 'my-secret',
    'command.params' => ['PathStyle' => true]
]);

С помощью 'command.params' позволяет установить параметр, используемый в каждой операции. Вам нужно будет использовать 'PathStyle' опцию при каждом запросе, чтобы убедиться, что SDK не перемещает ваше ведро в часть хоста URL, как это должно делаться для Amazon S3.

Об этом говорили все о проблеме на GitHub.

aws-sdk-php-laravel использует aws-sdk-php, который жестко запрограммирован для использования URL-адресов Amazon. Если вы хотите использовать эту библиотеку с Riak CS, вам необходимо настроить ее для использования вашего узла в качестве прокси. В соответствии с документами конфигурации, которые будут установлены с помощью:

use Aws\S3\S3Client;

$s3 = S3Client::factory(array(
    'request.options' => array(
        'proxy' => '127.0.0.1:8080'
    )
));

Я не использовал Laravel, поэтому я не уверен, куда его поместить, чтобы он передавал настройку

Другие вопросы по тегам