我想创建一个一次下载链接到亚马逊s3托管的文件。该链接在文件下载完成后即失效。如何创建一次性使用Amazon S3的下载链接?
我想让这个文件仍然托管,但访问者只能下载一次该文件。
我需要这个场景是:我有一个文件下载网站,用户为文件付费。我希望用户只能从网站(和Amazon s3)下载文件一次,我也不希望用户能够与其他人共享直接下载链接。
如果这是不可能的,我想知道如果可能的话用IP地址或Cookie来限制它是否更有效?
我想创建一个一次下载链接到亚马逊s3托管的文件。该链接在文件下载完成后即失效。如何创建一次性使用Amazon S3的下载链接?
我想让这个文件仍然托管,但访问者只能下载一次该文件。
我需要这个场景是:我有一个文件下载网站,用户为文件付费。我希望用户只能从网站(和Amazon s3)下载文件一次,我也不希望用户能够与其他人共享直接下载链接。
如果这是不可能的,我想知道如果可能的话用IP地址或Cookie来限制它是否更有效?
没有办法告诉S3允许链接仅被使用一次。但是,您可以创建一个只能在指定时间内使用的链接。我所做的是将请求者重定向到几分钟内到期的S3链接,因此他或她没有时间分享它。只要浏览器有时间接收重定向响应并遵循它,就可以使该过期时间非常短,甚至几秒钟。
)进行下载。这听起来适合我的sitatuion关于如何去关于这个? – Muggles
我看到你正在使用PHP。我没有编程,但亚马逊有一个SDK,它看起来像createPresignedUrl方法是你应该使用的。它的记录在http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html#_createPresignedUrl –
因此,您的网页将包含一个指向您的URL的链接现场。点击该网址会导致您的网站向您刚刚创建的预先签名的网址发送重定向响应,并在一分钟内过期。 –
您可以编写“一次性url生成器”服务(以网站或rest API的形式)并利用aws联邦用户功能来实现此目的。
考虑下面的程序:
任何开源项目都有这个功能吗? –
@Stef试试这个:https://github.com/joshpangell/single-use –
@AviParshan有没有类似的Java库? – sinu
使用标识的URL。只有这个用户可以使用这个URL。它也依赖于AWS SDK
请提供链接中的内容摘要。 – SilentMonk
请在答案中提供更多,然后只是一个链接。如果因为任何原因链接脱机,你的整个答案就变得毫无用处。 –
我建议你将自己的文件托管在自己托管的网站上,并使用服务器端脚本语言(如php – 2013-10-19 15:35:18