RiakCS S3 PHP客户端库

时间:2014-07-19 20:23:28

标签: php amazon-web-services amazon-s3 riak riak-cs

那里有RiakCS S3 PHP客户端库吗?我能找到的最好的是S3cmd命令行客户端软件。

我也看到有Riak PHP Client,但看起来没有任何与S3有关。

我安装了aws-sdk-php-laravel并使用了与RiakCS S3相同的凭据,但它似乎不起作用。错误信息如下:

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

感谢您提供任何指导或建议。

2 个答案:

答案 0 :(得分:4)

实际上,如果您使用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所做的那样。

issue on GitHub上讨论了所有内容。

答案 1 :(得分:2)

aws-sdk-php-laravel使用aws-sdk-php硬编码使用亚马逊的网址。如果要将该库与Riak CS一起使用,则需要将其配置为将节点用作代理。根据将使用以下设置的config docs

use Aws\S3\S3Client;

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

我还没有使用过Laravel,所以我不确定在哪里放置它以便它将设置传递给