首页 > 解决方案 > S3 存储桶不允许在 laravel 中上传文件

问题描述

我们正在尝试在 amazone s3 存储桶上上传文件,但它不工作。文件删除和读取工作正常。但上传不起作用。

 $url = Storage::disk('s3')->url('bulk_pdf_consignments/manifest' . $this->manifest_id . '_.pdf', fopen($bulk_pdf, 'r+'));

我认为我们需要添加策略,但不知道。

标签: laravelamazon-web-serviceslaravel-5amazon-s3

解决方案


您的上传代码必须是这样的:

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');

推荐阅读