将aws / aws-sdk-php与Google云端存储配合使用

时间:2014-08-31 18:34:01

标签: php amazon-web-services amazon-s3 google-cloud-storage aws-sdk

Google云端存储(与Google云端硬盘不同)似乎与S3 API兼容:

https://developers.google.com/storage/docs/migrating#migration-simple

有没有人知道我是否可以使用aws / aws-sdk-php(https://packagist.org/packages/aws/aws-sdk-php)软件包并将其配置为连接到我的Google云端存储而不是AWS S3?

我尝试过以下代码:

<?php 
use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\AwsS3 as Adapter;
require_once 'vendor/autoload.php';
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 1);


$client = S3Client::factory(array(
    'key'    => 'MY_GCS_KEY',
    'secret' => 'MY_GCS_SECRET',
    'endpoint' => 'storage.googleapis.com'
));
$filesystem = new Filesystem(new Adapter($client, 'MY_GCS_BUCKET'));
$filesystem->write('filename.txt', 'contents');

但是这给了我一个错误:

  

致命错误:未捕获Aws \ S3 \ Exception \ InvalidAccessKeyIdException:AWS错误代码:InvalidAccessKeyId,状态代码:403,AWS请求ID:BF7C1317719A4C67,AWS错误类型:客户端,AWS错误消息:您提供的AWS访问键ID在我们的记录中不存在。,User-Agent:aws-sdk-php2 / 2.6.15 Guzzle / 3.9.2 curl / 7.32.0 PHP / 5.5.4-1 + debphp.org~raring + 1在/ var /中抛出第91行的www / prudhub / dev / vendor / aws / aws-sdk-php / src / Aws / Common / Exception / NamespaceExceptionFactory.php

任何人都知道如何或者我是否可以正确设置aws / aws-sdk-php软件包以连接到Google云端存储?

修改

以下是使其有效的代码:

<?php 
use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\AwsS3 as Adapter;
require_once 'vendor/autoload.php';


$client = S3Client::factory(array(
    'key'    => 'MY_GCS_KEY',
    'secret' => 'MY_GCS_SECRET',
    'base_url' => 'https://storage.googleapis.com'
));
$filesystem = new Filesystem(new Adapter($client, 'MY_GCS_BUCKET'));
$filesystem->write('filename.txt', 'contents');

1 个答案:

答案 0 :(得分:7)