2015-09-28 124 views
2

我想用aws-sdk-php重命名S3上的图像。 我的代码如下:如何使用aws-sdk-php连接到amazon aws s3?

<?php 
use Aws\S3\S3Client; 
require 'aws-autoloader.php'; 

     $client = S3Client::factory(array(
     'credentials' => array(
     'key' => 'mykey', 
     'secret' => 'mysecret', 
    ), 
     'signature' => 'v4', 
     'region' => 'eu-central-1', 
     'version' => 'latest', 
     'http' => [ 
      'verify' => false 
     ] 
    )); 

     $result = $client->copyObject(array(
      'ACL' => 'private', 
      // Bucket is required 
      'Bucket' => 'myfirstbucket', 
      'Key' => "newfoldername/newimagename", 
      'CopySource' => "myfirstbucket/foldername/imagename", 
      'MetadataDirective' => 'REPLACE' 
    )); 
?> 

我得到的错误是:

AWS HTTP error: Client error: 400 AuthorizationHeaderMalformed (client): The authorization header is malformed; the Credential is mal-formed; expecting \"\/YYYYMMDD\/REGION\/SERVICE\/aws4_request\" 

有人可以帮助我吗?

回答

0

试试这个::

$client = S3Client::factory(array(
           'key' => $aws_key, 
           'secret' => $aws_access, 
           'region' => $aws_region 
        )); 

我只用使用这些PARAMS,使客户端。

+0

thx为(某种程度上晚)的答案。由于此项目已经过时,我无法再验证您的答案。但我会接受这个答案,因为它听起来很符合逻辑:-) – cari