laravel - 在 Amazon S3 中显示图像的 Laravel 问题
问题描述
现在,我目前在尝试在我的 Amazon S3 文件夹中显示图像时遇到问题。
.env
AWS_ACCESS_KEY_ID=somekeyid
AWS_SECRET_ACCESS_KEY=somekey
AWS_DEFAULT_REGION=eu-central-1
AWS_BUCKET=https://awsq-s3.s3.eu-central-1.amazonaws.com
控制器.php
$tempUrl = Storage::disk('s3')->url('randomImage.jpg');
这显示了 url,但是当我尝试访问/显示图像时,它总是说:访问被拒绝。
但是,这个创建文件
$value = Storage::disk('s3')->put('file.txt', 'Contents');
有效,它会在我的存储桶中创建文件。我尝试提供对我的帐户的完全访问权限(应用 AmazonS3FullAccess 策略),但它仍然显示访问被拒绝以显示图片。
有谁知道是什么问题?
解决方案
上传的图像可能是私有的。因此,您可能无法使用 url 显示。为了克服这个问题,Laravel 提供了 helper 函数temporaryUrl($path, $expiration, array $options = [])
。
$expiryDate = now()->addDay(); //The link will be expire after 1 day
$temporaryUrl = Storage::disk('s3')->temporaryUrl($url, $expiryDate);
然后,您现在可以使用 $temporaryUrl 在提供的到期日期下访问私有文件。
有关更多信息,请访问URL 文档
推荐阅读
- django - 通过模式从列表中删除和项目
- scipy-optimize-minimize - scipy.optimize.minimize 和 Minuit 返回初始猜测值
- android - 如何将视图绑定与包含的视图一起使用?
- javascript - 从 nodejs 显示数据到 html
- c# - 我应该为 Xbox One 选择哪个 UWP 版本?
- java - 从 SQL 查询休眠 Java 中获取对象
- qt - QMenuBar 将 QAction 对齐到中心
- python - 具有两个 def() 函数的局部变量上的 UnboundLocalError
- python-3.x - 带有tableau tabcmd错误的python子进程
- c++ - int(c) 和 c-'0' 之间的区别。C++