PHP 脚本无法继续执行 Amazon S3 Upload


PHP Script not proceeding ahead with Amazon S3 Upload

我正在尝试使用 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 开发工具包的凭证有问题。

谢谢!