那里有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.
感谢您提供任何指导或建议。
答案 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,所以我不确定在哪里放置它以便它将设置传递给