如何在 Lumen 中将文件上传到 AWS s3

Posted

技术标签:

【中文标题】如何在 Lumen 中将文件上传到 AWS s3【英文标题】:How to upload file to AWS s3 in Lumen 【发布时间】:2020-05-26 13:23:00 【问题描述】:

我正在用 Lumen 编写一个应用程序,为前端框架提供 API。我正在努力将文件上传到 S3。 我遵循的步骤。

使用 配置 .env 文件

AWS_ACCESS_KEY_ID=AKXXXXXXXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX AWS_DEFAULT_REGION=me-south-1 AWS_BUCKET=your_bucket_name AWS_URL=https://apigateway.me-south-1.amazonaws.com

使用 composer 为 Laravel 安装 AWS 开发工具包

作曲家需要 aws/aws-sdk-php-laravel:~3.0

现在这样写函数

public function upload(Request $request)

    $image = $request->file('image');
    $imageFileName = time() . '.' . $image->getClientOriginalExtension();
    $s3 = Storage::disk('s3');
    $filePath = '/venue/' . $imageFileName;
    $s3->put($filePath, file_get_contents($image));
    return response()->json(['status' => true, 'data' => $imageFileName], Response::HTTP_OK);

如果有人能分享一篇文章或完整的教程来说明如何做到这一点,那就太好了。

【问题讨论】:

查看itsolutionstuff.com/post/… 谢谢@NiravBhoi,我这里用的是Lumen,可以吗? 是的,因为 lumen 是 laravel 的孩子。但请先创建备份。 我知道,但有些功能在 Lumen 中不可用。无论如何,我会尝试你提到的包。 【参考方案1】:

你需要这个依赖:

composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"

见: https://laravel.com/docs/8.x/filesystem

【讨论】:

以上是关于如何在 Lumen 中将文件上传到 AWS s3的主要内容,如果未能解决你的问题,请参考以下文章

如何对上传到 AWS S3 的文件执行自动病毒扫描

如何使用 aws-sdk 将文件同步上传到 S3?

AWS S3 上传的图像已部分加载

如何使用 AWS AppSync 将文件上传到 AWS S3

如何在aws控制台上将war文件从s3上传到EBS环境

使用aws cli将S3对象上传到存储桶后如何获取它?