【问题标题】:How to upload image in s3 bucket in laravel 5.5如何在 laravel 5.5 的 s3 存储桶中上传图片
【发布时间】:2020-12-31 01:39:27
【问题描述】:

我正在尝试将图像存储在 S3 存储桶中,我正在使用 laravel 5.5 我是新手,我被困在这里:我正在尝试的是:

我的控制器:

public function imageUploadPost(Request $request)
{
    $this->validate($request, [
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);


    $imageName = time().'.'.$request->image->getClientOriginalExtension();
    $image = $request->file('image');
    $t = Storage::disk('s3')->put($imageName, file_get_contents($image), 'public');
    $imageName = Storage::disk('s3')->url($imageName);


    return back()
        ->with('success','Image Uploaded successfully.')
        ->with('path',$imageName);
}

我的路线:

Route::post('s3-image-upload','S3ImageController@imageUploadPost');

我的配置/filesystems.php

's3' => [
    'driver' => 's3',
    'key'       => env('AccessKeyID'),
    'secret'    => env('SecretAccessKey'),
    'region'    => env('region'),
    'bucket'    => env('mybucket'),
],

我从我的 .env 文件中获取这些值,我的 .env 文件如下所示:

AccessKeyID=xyz
SecretAccessKey=xyz
region=us-east-2
mybucket=spikessales

现在当我上传文件并点击上传按钮时,它会说:

在请求 https://spikessales.s3.us-east-2.amazonaws.com/1519812331.jpg 时遇到永久重定向。您确定您为此存储桶使用了正确的区域吗?

在这里我很困惑如何放置我的区域,我还创建了存储桶名称 (spikessales) 而且我不知道如何给出区域,因为我给出的是作为 aws 浏览器 url 存在的区域:看起来像:

  https://s3.console.aws.amazon.com/s3/home?region=us-east-2

我给出了 rgion,它出现在这个 url (us-east-2) 的末尾,你可以在我的 env 文件中看到。 我在创建存储桶名称时创建的区域是美国东部(弗吉尼亚北部)。请告诉我如何正确写入区域。

任何帮助将不胜感激!

【问题讨论】:

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


【解决方案1】:

在您的AWS API 调用中,从您的AWS S3 设置中设置区域(它显示在S3 存储桶GUI 中),不要注意URL 中显示的区域。

例如,在我的AWS S3 控制台中,它还在 URL 中显示region=us-east-2,尽管我在AWS S3 设置中设置了EU (Frankfurt) 区域。

【讨论】:

    【解决方案2】:

    要查找您的 S3 存储桶区域,请按照this zappysys.com article 中的以下步骤操作

    1. 通过访问https://console.aws.amazon.com/打开您的 AWS 控制台

    2. 从仪表板单击 S3 选项(或访问 https://console.aws.amazon.com/s3/home)

    3. 您将在左侧列表中看到所有存储桶

    4. 单击所需的 S3 存储桶名称

    5. 点击顶部的属性标签

    6. 现在您将看到所选存储桶的区域以及许多 其他属性。

    您现在可以根据您在此处看到的内容更改 env 文件中的区域。

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2017-12-23
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 2013-10-25
      • 2020-10-17
      相关资源
      最近更新 更多