aws s3上传文件 php

1、安装aws sdk,可以参考官方文档的安装文档

       安装composer

                如果 Composer 未在您的项目中,请下载并安装 Composer

                对于 Windows,请下载并运行 Composer-Setup.exe

                对于 Linux,请遵循“Download Composer (下载 Composer)”页面上的命令行安装。

        因为我本地的环境是phpstudy,使用的php框架是tp5.0,所以只需要直接执行更新脚本,下载aws-sdk-php

2、上传对象到桶

function awsUploadFile($keyName,$filepath){
    set_time_limit(0);
    $awsConfig = array(
        'version'=>'latest',//版本
        'acl'=>'public-read',//权限
        'bucket'=>'bucket',//桶块
        'region'=>'ap-east-1',//区域 和 亚马逊资源服务器创建的桶块区域一致
        'key_id'=>"xxxxxxxxxx",//Access key ID
        'access_key'=>"xxxxxxxx",//Secret access key
    );
    if(empty($awsConfig)){
        echo "aws配置缺失";exit;
    }
    //实例化证书
    $credentials = new Aws\Credentials\Credentials($awsConfig['key_id'],
        $awsConfig['access_key']);
    $s3 = new Aws\S3\S3Client([
        'version' => $awsConfig['version'],//版本
        'region'  => $awsConfig['region'],//区域
        'credentials'=>$credentials,//证书
    ]);

    $config = [
        'Bucket'               => $awsConfig['bucket'],
        'Key'                  => $keyName,//亚马逊静态资源服务器上的路径
        'SourceFile'           => $filepath,//原文件路径
        'ACL'=>$awsConfig['acl'],//权限
    ];
    try {
        $result = $s3->putObject($config);
    } catch (Exception $exception) {
        echo "Failed to upload $filepath with error: " . $exception->getMessage();
        exit("Please fix error with file upload before continuing.");
    }

    //删除上传到服务的原文件
    unlink($filepath);
    return $result;
}

3、在开发中遇到的问题

        1、一开始使用的使用环境变量凭证,可以参考;发现在windows 10 系统下,一直没有获取到对应的文件,没走通,主要原因还是在于没有将所有的文档阅读完,就开始动手写代码了,导致浪费了时间;最后使用的是凭证提供程序,如下图

        2、由于本地上传的缘故,出现了cURL error 60报错

        错误提示:

        AWS HTTP error: cURL error 60: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

        具体的解决方案步骤

                1)从 https://curl.haxx.se/ca/cacert.pem 下载最新的cacert.pem

                2)将以下行添加到php.ini(如果这是共享托管和您没有访问php.ini然后你可以添加到.user.ini在public_html) curl.cainfo=/path/to/downloaded/cacert.pem   可以参考文档 https://blog.csdn.net/qq_35255775/article/details/81020668

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值