我正在创建签名 URL 并将其发送到外部系统以供以后使用。不幸的是,有些长度参数不允许传递极长的字符串。最近,签名 URL 似乎被重新格式化和扩展,这随后破坏了我的应用程序。
是否有某种方法可以从 S3 生成较短的 URL?出于多种原因,我不想依赖第三方 URL 缩短服务(这是 URL 生成时的额外请求,并且会增加故障点)。
您可以直接在 Amazon S3 中构建一个非常简单的 URL 缩短器:
mybucket.s3-website-ap-southeast-2.amazonaws.com
pic1.jpg
Website Redirect Location
然后,当您访问零长度对象(例如
mybucket.s3-website-ap-southeast-2.amazonaws.com/pic.jpg
)时,它实际上会重定向到存储在元数据中的长URL。
简单,无需数据库!
预签名 URL 的目的是提供从 S3 下载私有文件的临时访问权限。
警告:重定向或缩短这些网址存在安全问题。最终网址需要难以猜测/推断,因此它很长并且真正随机
如果您的 S3 文件是公开的,您可以 将其标记为公开,并直接链接到它们。或者你可以例如将 Cloudfront 分配链接到存储桶,并为该分配分配自定义域名。或者您可以使用重定向/缩短服务。
如果您的 S3 文件是私有的,您可以将链接发送到需要身份验证的页面,并且具有带有预签名 URL 的实际文件下载按钮。