php - 使用 put 对象和 s3 捕获错误

标签 php amazon-web-services amazon-s3 laravel-4

我正在使用 S3 php sdk 及其幼虫实现将对象放到 S3 上。

try {
    $s3->putObject(array(
    'Bucket' => 'mybucket', 
    'Key' =>  'abc',
    'Body' => $img->encode(null, 90),
    'ACL' => 'public-read',
    'ContentType' => $img->mime()
));

}
catch (S3Exception $e) {

    var_dump('error');
    die();
}

但是上面的代码好像并没有捕捉到错误。我设置了不正确的存储桶,但仍然出现错误:

type:Aws\S3\Exception\NoSuchBucketException, message:The specified bucket does not exist,…

我怎样才能捕捉到这个错误并相应地采取行动。

最佳答案

使用正确的父类

要捕获所有 S3 异常 - 确保引用正确的命名空间:

catch (\Aws\S3\Exception\S3Exception $e) {

或者

<?php
use Aws\S3\Exception\S3Exception;

...

catch (S3Exception $e) {

否则,catch block 不会捕获 S3 库抛出的异常。

关于php - 使用 put 对象和 s3 捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24351889/

相关文章:

php - 如何在php中设置访问权限以查看页面

amazon-web-services - 如何同时使用 ec2.py 和 localhost

reactjs - 如何将不使用 Next.js 的 React SSR 应用程序部署到 AWS Amplify?

python - 是否有用于向 AWS DynamoDB 提交批量获取请求的 Python API?

python - 使用 Boto3 从 AWS S3 读取 gzip 文件的内容

javascript - JS 中 Promise 和回调的问题

php - 由于 PHP 7.3 `array_unshift()` 只能用一个参数调用。重点是什么?

PHP递归不停止

php - 再次过滤结果为 php

mongodb - AWS S3 与 MongoDB