那里有任何 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.
感谢您的任何指导或建议。
那里有任何 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.
感谢您的任何指导或建议。
实际上,如果您使用 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 上的一个问题上讨论过的。
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,所以我不知道把它放在哪里,以便它将设置传递给