我正在尝试使用AWS PHP SDK将文件上传到Amazon S3,但每当我尝试上传时,脚本都会将输出提供给PutObject操作,但在该操作之后没有输出。我甚至无法转储结果对象。凭据存储在我的测试计算机的.aws
文件夹中的root
中(运行Ubuntu)。以下是代码 -
$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数组的任何输出。知道可能会发生什么吗?
感谢任何帮助^ _ ^
-Pranav
答案 0 :(得分:1)
使用以下代码查看您的图片是否已成功上传
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();
}
逐步获取详细信息
答案 1 :(得分:0)
似乎我已将凭据放在错误的文件夹中。根据NGINX,用于存储凭据的默认文件夹是/var/www
,而不是用户的主目录。
此外,我打开了php.ini中的display_errors
,这帮助我发现AWS SDK在凭据方面遇到了问题。
谢谢!