缩短 S3 签名网址

问题描述 投票:0回答:2

我正在创建签名 URL 并将其发送到外部系统以供以后使用。不幸的是,有些长度参数不允许传递极长的字符串。最近,签名 URL 似乎被重新格式化和扩展,这随后破坏了我的应用程序。

是否有某种方法可以从 S3 生成较短的 URL?出于多种原因,我不想依赖第三方 URL 缩短服务(这是 URL 生成时的额外请求,并且会增加故障点)。

url amazon-web-services amazon-s3
2个回答
11
投票

您可以直接在 Amazon S3 中构建一个非常简单的 URL 缩短器

  • 打开静态网站托管。这将为您提供一个用于访问您的存储桶的 URL,例如:
    mybucket.s3-website-ap-southeast-2.amazonaws.com
  • 在 S3 中使用“短名称”创建一个零长度对象,例如
    pic1.jpg
  • 将元数据添加到零长度对象:
    • 按键:
      Website Redirect Location
    • 价值:长网址

然后,当您访问零长度对象(例如

mybucket.s3-website-ap-southeast-2.amazonaws.com/pic.jpg
)时,它实际上会重定向到存储在元数据中的长URL。

简单,无需数据库!


0
投票

预签名 URL 的目的是提供从 S3 下载私有文件的临时访问权限

警告:重定向或缩短这些网址存在安全问题。最终网址需要难以猜测/推断,因此它很长并且真正随机

如果您的 S3 文件是公开的,您可以 将其标记为公开,并直接链接到它们。或者你可以例如将 Cloudfront 分配链接到存储桶,并为该分配分配自定义域名。或者您可以使用重定向/缩短服务。

如果您的 S3 文件是私有的,您可以将链接发送到需要身份验证的页面,并且具有带有预签名 URL 的实际文件下载按钮。

© www.soinside.com 2019 - 2024. All rights reserved.