0

我正在尝试为用户提供一个临时链接,以从 python 中的 Amazon S3 存储桶下载文件。我正在使用 generate_url 方法,它为指定的时间段生成 url。

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

4

1 回答 1

1

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

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

最终是让您的服务器从 S3 中获取数据并将其提供给客户。那么除非您对他们进行身份验证并且他们保留在会话中,否则任何人都无法获取该文件。当然,最大的麻烦是您对服务器征税,并且击败了 S3 酷的一半原因,即您不必提供文件,S3 可以。但是,如果您的服务器在 Amazon EC2 上,则从 S3 拉取不需要任何费用,只需向客户收取下载费用。此外,EC2 实例可以以本地网络级别的速度从 S3 访问和下载数据,就像我说的那样,它是免费的。

于 2013-07-20T05:27:24.980 回答