laravel - S3 存储桶不允许在 laravel 中上传文件
问题描述
我们正在尝试在 amazone s3 存储桶上上传文件,但它不工作。文件删除和读取工作正常。但上传不起作用。
$url = Storage::disk('s3')->url('bulk_pdf_consignments/manifest' . $this->manifest_id . '_.pdf', fopen($bulk_pdf, 'r+'));
我认为我们需要添加策略,但不知道。
解决方案
您的上传代码必须是这样的:
Storage::disk('s3')->put($pathToSaveOn, file_get_contents($request->file->getRealPath()));
上传后,您可以通过以下方式获取 s3 url:
$url = Storage::disk('s3')->temporaryUrl($imagePath,now()->addMinutes(10));
注意:此代码是上传私有文件,因此,您需要生成临时 url 要公开上传文件,您需要传递第三个参数 public
Storage::disk('s3')->put($pathToSaveOn, file_get_contents($request->file->getRealPath()), 'public');
推荐阅读
- c# - 无法读取托管服务器上的用户机密
- file - Symfony 4 - VichUploader 可以删除文件吗?
- api - 如何验证变量可以有一个 NULL 或字符串格式的值
- c# - 如何在asp.net C#中将数据转换为数组形式?
- eclipse - 将 tomcat 与 Eclipse Ide 集成时出现错误
- xml - 为什么我每次都会收到 DTD 错误?
- javascript - 请问我能找到类似这个设计的日期选择器库吗?
- java - 如何在 GWT JSNI 中将返回值从 javascript 转换为 java?
- python - 使用 `contains` 合并 DataFrame(不是完全匹配!)
- javascript - 控制台记录对象值