我正在尝试为用户提供一个临时链接,以便在python中从Amazon S3存储桶下载文件。 我正在使用generate_url方法生成指定时间段的URL。
我担心的是,在创建此链接时,包含所需用户的任何人都可以在该时间段内点击此网址并获取文件。如何阻止其他人访问这些文件?
答案 0 :(得分:1)
确保链接的到期时间设置为非常短的时间。然后确保您通过SSL与用户通信,并且提供的链接是SSL。使用SSL连接时,页面中的数据和URL都是加密的,没有人“嗅探”数据应该能够看到任何内容。
对这样的文件进行真正锁定的唯一其他方法是积极检查S3存储桶生成的日志文件,并检查链接是否存在滥用行为。但问题是,您的链接的流量可能需要几个小时才能进入日志,但是取决于您希望这些链接持续多长时间的延迟可能是可以接受的。然后假设您发现滥用,例如几个不同的IP地址命中链接,您可以通过在S3上重命名文件来停止命中。
最终是您的服务器从S3获取数据并将勺子提供给客户。然后,任何人都无法获取该文件,除非您对它们进行身份验证并保留在会话中。当然,最重要的是你正在为你的服务器征税,并且正在击败S3很酷的一半原因,即你不必为文件提供服务,S3确实如此。但是,如果您的服务器位于Amazon EC2上,那么从S3中提取服务是免费的,只需向客户下载即可。此外,EC2实例可以以本地网络速度从S3访问和下载数据,就像我说的那样免费。