mercredi 2 septembre 2015

aws s3 access denied when getting image by url php

I am working on AWS EC2 Ubuntu Machine and trying to fetch image from AWS S3 but following error has been shown to me every time.

<Error>
<Code>InvalidArgument</Code>
<Message>
Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.
</Message>
<ArgumentName>Authorization</ArgumentName>
<ArgumentValue>null</ArgumentValue>
<RequestId>7C8B4BF1CE2FDC9E</RequestId>
<HostId>
/L5kjuOET4XFgGter2eFHX+aRSvVm/7VVmIBqQE/oMLeQZ1ditSMZuHPOlsMaKi8hYRnGilTqZY=
</HostId>
</Error>

here is my bucket policy

{
 "Version": "2012-10-17",
 "Id": "Policy1441213815928",
 "Statement": [
  {
   "Sid": "Stmt1441213813464",
   "Effect": "Allow",
   "Principal": "*",
   "Action": "s3:GetObject",
   "Resource": "arn:aws:s3:::mytest.sample/*"
  }
 ]
}

enter image description here

Here is the code

require 'aws-autoloader.php';

$credentials = new Aws\Credentials\Credentials('key', 'key');
$bucketName = "";
$s3 = new Aws\S3\S3Client([
    'signature' => 'v4',
    'version' => 'latest',
    'region' => 'ap-southeast-1',
    'credentials' => $credentials,
    'http' => [
        'verify' => '/home/ubuntu/cacert.pem'
    ],
    'Statement' => [
        'Action ' => "*",
    ],

  ]);

$result = $s3->getObject(array(
'ACL' => 'authenticated-read',
'Bucket' => $bucketName,
'Key' => 'about_us.jpg',
    //  'signature' => 'v4',
    ));

Html

<img src="<?php echo $result['@metadata']['effectiveUri']; ?>" />

let me know if you need more.




Aucun commentaire:

Enregistrer un commentaire