3

那里有任何 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.

感谢您的任何指导或建议。

4

2 回答 2

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]
]);

Using'command.params'允许您设置在每个操作中使用的参数。您需要'PathStyle'在每个请求上使用该选项,以确保 SDK 不会将您的存储桶移动到 URL 的主机部分,就像它应该为 Amazon S3 所做的那样。

这都是在 GitHub 上的一个问题上讨论过的。

于 2014-07-21T22:38:59.563 回答
2

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

use Aws\S3\S3Client;

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

我没有使用过 Laravel,所以我不知道把它放在哪里,以便它将设置传递给

于 2014-07-21T10:52:17.587 回答