我想创建一个指向亚马逊 s3 托管文件的一次性下载链接。下载文件后,此链接即失效。
我希望该文件仍被托管,但访问者只能下载该文件一次。
我需要这个的场景是:我有一个文件下载网站,用户为文件付费。我希望用户只能从网站(和 Amazon s3)下载文件一次,我也不希望用户能够与其他人共享直接下载链接。
如果这不可能,我想知道如果可能的话,通过 IP 地址或 Cookie 来限制它是否更有效?
我想创建一个指向亚马逊 s3 托管文件的一次性下载链接。下载文件后,此链接即失效。
我希望该文件仍被托管,但访问者只能下载该文件一次。
我需要这个的场景是:我有一个文件下载网站,用户为文件付费。我希望用户只能从网站(和 Amazon s3)下载文件一次,我也不希望用户能够与其他人共享直接下载链接。
如果这不可能,我想知道如果可能的话,通过 IP 地址或 Cookie 来限制它是否更有效?
没有办法告诉 S3 只允许使用一次链接。但是您可以创建一个只能在指定时间之前使用的链接。我所做的是将请求者重定向到在几分钟后过期的 S3 链接,因此他或她没有时间分享它。您可以使过期时间非常短,甚至几秒钟,只要他们的浏览器有时间接收重定向响应并遵循它。
您可以编写一个“一次性 url 生成器”服务(以网站或 rest API 的形式)并利用 aws 联合用户功能来实现这一点。
考虑以下过程: