php - 使用我自己的域名访问 Amazon S3 对象
问题描述
我在 S3 存储桶中有一个公共图像的存储空间。任何人都可以从我的网站获取图片的公共链接,并在他们自己的网站上使用它。问题是链接看起来像这样:
https://my-bucket-name.production.s3.eu-central-1.amazonaws.com/images/samplename.png
这很糟糕,因为每次我更改存储桶或 AWS 区域的名称时,链接都将不再有效。它还向用户暴露了很多东西,而且看起来很丑。
理想的情况是在访问后重定向到 s3 公共链接:
https://mywebsite.com/awsstatic/images/samplename.png
因此服务器检查 URL 中是否存在awsstatic
,并重定向到 S3 资源以显示图像。
现在我可以看到为此编写一个 REST 端点,下载文件,但是每次有人尝试访问图像时,我的服务器都需要缓冲整个图像。它还会获得不必要的额外流量。
这样做的正确过程是什么?
解决方案
您可以使用:
Route::get('/awsstatic/images/{image}', function($image){
$url = 'https://my-bucket-name.production.s3.eu-central-1.amazonaws.com/images/' . $image;
return Redirect::away($url)
});
推荐阅读
- php - 如何使用 PHPDoc?
- sql - 是否有一种将可空列级联到引用表的非触发方式?
- javascript - 无法解决承诺拒绝并发送数组作为响应
- forms - 如何在 ms 访问中更新单个表单上的多个表?
- ruby-on-rails - 您的 Ruby 版本是 2.6.3,但您的 Gemfile 指定了 ~> 2.3.1
- powershell - 无法正确获取 xml 节点的最后一个节点
- javascript - 指数图动画 P5js 画布
- jquery - DatePicker - 周五下午 3 点后,周一禁用
- c - typedef 语句的不同命名方式的目的是什么?
- asp.net-mvc - Kentico MVC - 外部暂存站点上的 PageBuilder 错误