致命错误:未捕获的Aws \ Glacier \ Exception \ GlacierException:AWS错误代码:,状态代码:400,AWS请求

时间:2013-08-22 05:42:11

标签: php sdk amazon-web-services

我一直在尝试通过SDK上传图片,但是我收到了这个错误:

致命错误:未捕获的Aws \ Glacier \ Exception \ GlacierException:AWS错误代码:,状态代码:400,AWS请求ID :, AWS错误类型:客户端,AWS错误消息:,User-Agent:aws-sdk-php2 /2.4.3第91行/www/site/test/Aws/Common/Exception/NamespaceExceptionFactory.php中引发的Guzzle / 3.7.2 curl / 7.15.5 PHP / 5.3.8

这是我的测试代码:

 <?php
 // Include the SDK using the Composer autoloader
 require 'aws-autoloader.php';
  use Aws\Glacier\GlacierClient;

    $client = GlacierClient::factory(array(
     'key'    => 'xxxxxxx',
     'secret' => 'xxxxxxxx',
     'region' => 'us-east-1' // (e.g., us-west-2)
    ));

    $vaultName = 'http://xxx.xxx.xxx/vrs/images/album/default/pp.jpg';
    $filename = '/www/site/test/pp.jpg';

   $result = $client->uploadArchive(array(
     'vaultName' => $vaultName,
     'body'      => fopen($filename, 'r'),
    ));
    $archiveId = $result->get('archiveId');

    var_dump($archiveId);

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

您可能会对保险库和档案之间的区别感到困惑。您应该确保查看Amazon Glacier Developer Guide以熟悉Glacier的基本概念。您必须先创建保管库才能将存档上传到该保管库。 Glacier中的保险库类似于S3中的保管桶。

您还应该查看这些链接,这些链接提供了使用Glacier进行上传的代码示例: