gpt4 book ai didi

php - 如何在laravel 5.5的s3存储桶中上传图像

转载 作者:行者123 更新时间:2023-12-04 14:01:18 25 4
gpt4 key购买 nike

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

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
现在,当我上传文件并点击上传按钮时,它说:

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 浏览器 url 存在的区域:看起来像:
  https://s3.console.aws.amazon.com/s3/home?region=us-east-2
我在这个 url (us-east-2) 的末尾给出了 rgion,正如你在我的 env 文件中看到的那样。
我在创建存储桶名称期间创建的区域是美国东部(弗吉尼亚北部)。请告诉我如何正确书写区域。
任何帮助将不胜感激!

最佳答案

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

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

关于php - 如何在laravel 5.5的s3存储桶中上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49027504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com