PHP脚本未继续使用Amazon S3上载

时间:2016-02-06 17:24:17

标签: php amazon-web-services amazon-s3

我正在尝试使用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

2 个答案:

答案 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();
}

您可以从此处Amazon S3 File Upload Using PHP

逐步获取详细信息

答案 1 :(得分:0)

似乎我已将凭据放在错误的文件夹中。根据NGINX,用于存储凭据的默认文件夹是/var/www,而不是用户的主目录。

此外,我打开了php.ini中的display_errors,这帮助我发现AWS SDK在凭据方面遇到了问题。

谢谢!