这是我使用PHP上传到S3的功能。我收到此错误:
我们计算出的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。
我正在使用正确的密钥和机密。我做错了什么?
function upload_s3bucket($file,$name,$bucket) {
require(APPPATH.'/third_party/aws/aws-autoloader.php');
$key = "*******";
$secret = "************";
$file = "/var/www/vhosts/example.com/website/assets/media/images/test.jpg";
if(isset($file)){
$s3 = new Aws\S3\S3Client([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => $key,
'secret' => $secret,
]
]);
$result = $s3->putObject([
'Bucket' => 'cdn-example.com/'.$bucket,
'Key' => $key,
'SourceFile' => $file,
'ACL' => 'public-read'
]);
return $file_name;
}
}
对象密钥与访问密钥相同吗?我正在使用从“您的安全凭证”创建的访问密钥。
答案 0 :(得分:1)
不,它们不是相同的S3对象密钥是指S3存储桶中的文件夹,即s3:// mybucket / mykey
凭据密钥是您的访问密钥和秘密密钥。