Python 如何生成从AmazonS3下载文件的安全临时url?

Python 如何生成从AmazonS3下载文件的安全临时url?,python,amazon-s3,Python,Amazon S3,我试图给用户提供一个临时链接,用python从AmazonS3 bucket下载文件。 我使用的是generate_url方法,它在指定的时间段内生成url 我关心的是,创建此链接时,包括所需用户在内的任何人都可以在该时间段内点击此url并获取文件。我如何防止其他人访问这些文件?请确保将链接的过期时间设置为非常短的时间。然后确保您正在通过SSL与用户通信,并且提供的链接是SSL。当使用SSL连接时,来自页面和URL的数据都是加密的,任何“嗅探”数据的人都不能看到任何东西 对这样的文件进行真正锁定

我试图给用户提供一个临时链接,用python从AmazonS3 bucket下载文件。 我使用的是generate_url方法,它在指定的时间段内生成url


我关心的是,创建此链接时,包括所需用户在内的任何人都可以在该时间段内点击此url并获取文件。我如何防止其他人访问这些文件?

请确保将链接的过期时间设置为非常短的时间。然后确保您正在通过SSL与用户通信,并且提供的链接是SSL。当使用SSL连接时,来自页面和URL的数据都是加密的,任何“嗅探”数据的人都不能看到任何东西

对这样的文件进行真正锁定的唯一其他方法是积极检查S3 bucket生成的日志文件,并检查链接是否被滥用。然而,问题是,您的链接的流量可能需要几个小时才能进入日志,但取决于您希望这些链接持续多长时间,延迟可能是可以接受的。然后假设您发现了滥用,例如几个不同的IP地址命中链接,您可以通过在S3上重命名文件来停止命中


最终,您的服务器将从S3中获取数据,并将其填鸭式地提供给客户。那么,任何人都不可能获得该文件,除非您对他们进行身份验证,并且他们仍在会话中。当然,最令人沮丧的是,您正在向服务器征税,并且正在挫败S3酷的一半原因,即您不必提供文件,而S3需要。但是,如果您的服务器在AmazonEC2上,那么从S3下载是没有成本的,只需要向客户下载就可以了。此外,EC2实例可以以本地网络的速度从S3访问和下载数据,就像我说的,它是免费的。

听起来你需要验证应该下载该文件的用户。我正在验证该用户……但是网络上的任何人都可以使用嗅探器读取url并点击url以获取files@Kash你有没有考虑过使用boto或s3cmd?两者都允许您从S3 bucket下载,但需要身份验证以确保随机人不能只下载文件?我所说的generate_url方法仅适用于Boto…我想知道此方法提供的url是否安全?