【问题标题】:Error uploading from Laravel 5.4 to S3 bucket从 Laravel 5.4 上传到 S3 存储桶时出错
【发布时间】:2018-08-19 05:56:55
【问题描述】:

[我从本地主机运行脚本]

我正在尝试使用 Laravel 5.4 将文件上传到 AWS S3 存储桶,但出现此错误:

Error executing "PutObject" on "https://bucket_name.s3.amazonaws.com/1520719994357906.png"; AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

在文件系统.php 中:

's3' => [
        'driver' => 's3',
        'key' => 'KRY_HERE',
        'secret' => 'SECRET_HERE',
        'region' => 'us-east-1',
        'bucket' => 'bucket_name', //has global access to read files
    ],

在控制器中:

Storage::disk('s3')->put($imageName, file_get_contents(public_path('galleries/').$imageName));

如何解决这个问题?如果我将应用程序上传到 EC2 实例,是否需要安装 SSL 才能将文件上传到 S3 存储桶?提前致谢。

【问题讨论】:

    标签: laravel amazon-s3 upload


    【解决方案1】:

    它在本地主机上不起作用,如果你想在本地主机上工作,你必须在供应商目录中做一些更改。(仅供本地使用)

    供应商/guzzle/src/handler/CurlFactory.php

    在第 350 行附近。注释这两行并添加新的两行,否则替换这两行。(如你所愿)

      if ($options['verify'] === false) {
                        unset($conf[\CURLOPT_CAINFO]);
                        $conf[\CURLOPT_SSL_VERIFYHOST] = 0;
                        $conf[\CURLOPT_SSL_VERIFYPEER] = false;
                    } else {
                   /* $conf[\CURLOPT_SSL_VERIFYHOST] = 2;
                      $conf[\CURLOPT_SSL_VERIFYPEER] = true;*/ //Comment this two line
                      $conf[\CURLOPT_SSL_VERIFYHOST] = 0;
                      $conf[\CURLOPT_SSL_VERIFYPEER] = false;
    }  
    

    现在一切正常。

    【讨论】:

      【解决方案2】:

      从服务器上传工作正常,无需安装 SSL,它只是无法从本地主机工作。

      【讨论】:

        猜你喜欢
        • 2017-10-04
        • 2019-02-01
        • 2015-05-05
        • 1970-01-01
        • 2015-03-12
        • 2017-04-19
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        相关资源
        最近更新 更多