【发布时间】:2018-07-23 17:11:42
【问题描述】:
在开发环境中,以下代码可以完美地将文件上传到 AWS S3 法兰克福区域,并按照
中所述设置凭证https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
PHP
require("aws.phar");
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'my bucket';
$filepath = 'currentfilepath.jpeg';
$filename = 'newfilename.jpeg';
$s3 = S3Client::factory(array(
'key' => 'XXX',
'secret' => 'YYY',
'region' => 'eu-west-2',
'version' => 'latest'
));
try {
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $filename,
'SourceFile' => $filepath,
'ACL' => 'public-read'
));
var_dump($result);
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
但是在部署的环境中,我收到拒绝访问错误。
执行“PutObject”时出错 "https://s3.eu-west-2.amazonaws.com/mybucket/newfilename.jpeg"; AWS HTTP 错误:客户端错误:403 AccessDenied(客户端):访问被拒绝
与开发和部署的唯一区别是我没有开发环境中的凭据文件。我想知道如何在已部署的环境中管理凭据以使其正常工作?
【问题讨论】:
标签: php amazon-web-services amazon-s3