我有一个个人资料页面,用户在其中上传他们的驾驶执照图像,我将这些图像存储在 Amazon s3 存储桶中,具有私有可见性$path = $request->file('image')->store('avatars', 's3')
。我想在用户个人资料页面中显示此图像,由于文件是私有的,无法访问这些图像,我找到了我必须创建临时 URL 来访问图像的解决方案,如下所示
$image_path = Storage::disk('s3')->temporaryUrl(
'avatars/'.$license->imageName,
Carbon::now()->addMinutes(20)
);
$image_path
正在返回我可以在标签中使用的 url 的临时路径,但<img src="{{$image_path}}"
这个解决方案的问题是即使我在隐身模式下复制并粘贴这个临时 url 它返回图像,因为设置了 20 分钟的时间,这个解决方案我的客户不是接受作为图像可以在私人窗口中访问,即使它是临时访问。
我发现的另一个没有生成临时 url 的解决方案是,return $src = Storage::disk('s3')->response('avatars/'.$image->filename);
如果我返回此行,它将在浏览器中打印图像。$src
但是如果我在刀片文件{{src}}
输出 中打印它,我想在刀片文件中显示图像HTTP/1.0 200 OK Cache-Control: no-cache, private Content-Disposition: inline; filename=vkMv0NcQGBoq3U9C7DUNhzujA6tLEp8dQEIMJCO2.jpg Content-Length: 1630 Content-Type: image/jpeg Date: Wed, 03 Nov 2021 10:07:56 GMT
。
请指导我有什么方法可以在刀片中打印这些图像,或者任何其他方式来访问私人文件而不生成临时 url