如何在laravel 5.5中的s3桶中上传图像

问题描述 投票:1回答:2

我试图将图像存储在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');

我的config / 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

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

    Encountered a permanent redirect while requesting https://spikessales.s3.us-east-2.amazonaws.com/1519812331.jpg. Are you sure you are using the correct region for this bucket?

在这里我很困惑如何把我的区域也创建了桶名称(spikessales),我不知道如何给区域,因为我给出的区域,作为aws浏览器网址:看起来像:

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

我正在提供rgion,它出现在这个url(us-east-2)的末尾,正如你在我的env文件中看到的那样。我在创建桶名时创建的区域是US East(N.Virginia)。请告诉我如何正确地写区域。

任何帮助将非常感谢!

php laravel amazon-web-services amazon-s3
2个回答
1
投票

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

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


0
投票

要查找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. 现在,您将看到所选存储区的Region以及许多其他属性。

enter image description here

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

© www.soinside.com 2019 - 2024. All rights reserved.