aws s3 php host,php – 通过url获取图像时,AWS S3访问被拒绝

我正在AWS EC2 Ubuntu机器上工作,并试图从AWS S3获取图像,但是每次都会向我显示以下错误。

InvalidArgument

Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.

Authorization

null

7C8B4BF1CE2FDC9E

/L5kjuOET4XFgGter2eFHX+aRSvVm/7VVmIBqQE/oMLeQZ1ditSMZuHPOlsMaKi8hYRnGilTqZY=

这是我的桶策略

{

"Version": "2012-10-17",

"Id": "Policy1441213815928",

"Statement": [

{

"Sid": "Stmt1441213813464",

"Effect": "Allow",

"Principal": "*",

"Action": "s3:GetObject",

"Resource": "arn:aws:s3:::mytest.sample/*"

}

]

}

AgfBs.png

这是代码

require 'aws-autoloader.php';

$credentials = new Aws\Credentials\Credentials('key', 'key');

$bucketName = "mytest.sample";

$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(

'Bucket' => $bucketName,

'Key' => 'about_us.jpg',

));

HTML

<?php%20echo%20%24result%5B'@metadata'%5D%5B'effectiveUri'%5D;%20?>

Edit for Michael – sqlbot : here I am using default KMS.

try {

$result = $this->Amazon->S3->putObject(array(

'Bucket' => 'mytest.sample',

'ACL' => 'authenticated-read',

'Key' => $newfilename,

'ServerSideEncryption' => 'aws:kms',

'SourceFile' => $filepath,

'ContentType' => mime_content_type($filepath),

'debug' => [

'logfn' => function ($msg) {

echo $msg . "\n";

},

'stream_size' => 0,

'scrub_auth' => true,

'http' => true,

],

));

} catch (S3Exception $e) {

echo $e->getMessage() . "\n";

}

让我知道如果你需要更多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值