我正在尝试使用 AWS PHP SDK 将文件上传到 Amazon S3,但每当我尝试上传时,脚本都会在 PutObject 操作之前提供输出,但在该操作之后没有输出。我什至无法转储结果对象。凭据存储在我的测试计算机(运行 Ubuntu)的root
文件夹中的.aws
中。下面是代码 -
$s3 = new Aws'S3'S3Client([
'version' => 'latest',
'region' => 'us-east-1'
]);
echo "<br />".realpath(UPLOAD_DIR . $apiKEY . "/" . $name);
try {
$result = $s3->putObject([
'Bucket' => 'quicklyusercannedspeechbucket',
'ContentType' => 'text/plain',
'Key' => $apiKEY . "/" . $name,
'SourceFile' => realpath(UPLOAD_DIR . $apiKEY . "/" . $name)
]);
var_dump($result);
}
catch('Aws'S3'Exception'S3Exception $e) {
echo $e->getAwsErrorCode();
}
echo "Finished";
var_dump($result);
当我运行上面的代码时,我没有得到$result数组的任何输出。知道会发生什么吗?
任何帮助不胜感激 ^_^
-普拉纳夫
使用以下代码查看图片是否上传成功
try {
$result = $s3->putObject([
'Bucket' => 'quicklyusercannedspeechbucket',
'ContentType' => 'text/plain',
'Key' => $apiKEY . "/" . $name,
'SourceFile' => realpath(UPLOAD_DIR . $apiKEY . "/" . $name)
]);
$s3file='http://quicklyusercannedspeechbucket.s3.amazonaws.com/'.$name;
echo "<img src='$s3file'/>";
echo 'S3 File URL:'.$s3file;
var_dump($result);
}
catch('Aws'S3'Exception'S3Exception $e) {
echo $e->getAwsErrorCode();
}
您可以从这里获得分步详细信息 使用 PHP 上传 Amazon S3 文件
似乎我把凭据放在了错误的文件夹中。根据NGINX,用于存储凭据的默认文件夹是/var/www
而不是用户的主目录。
此外,我打开了 php 中的display_errors
.ini这帮助我发现 AWS 开发工具包的凭证有问题。
谢谢!