7

我想不通。

这就是我想要发生的事情......

我有一个应用程序,用户使用 boto 和 django 将文件上传到 S3。我希望这些文件是私有的,并且只能通过我的应用程序使用我的 api 凭据访问。

因此,如果用户通过我的应用上传照片,他或其他任何人可以下载照片的唯一方法是通过他在我的应用上的帐户。这是否可能,如果可以,我该如何使用 boto 的 acl 规则进行设置。我不需要代码,(希望)我可以弄清楚,只需了解如何做到这一点。

这有意义吗?我知道我没有很好地传达它,我提前道歉。另外,感谢您的帮助。

4

3 回答 3

7

boto 的 ACL 的文档在这里。我建议只使用private“固定策略”——因为您的用户无论如何都没有 S3 帐户,这是迄今为止最简单的想法。您的应用程序当然必须跟踪哪个用户“拥有”哪些文件(这应该是一个非常非常简单的 Django 模型!)。

于 2010-08-17T02:08:03.647 回答
5

我认为你可能在错误的领域寻找你想要完成的事情。ACL 接口允许您授予权限,但它们取决于拥有 Amazon S3 账户的用户。@Alex Martelli 建议使用private罐装政策,我同意——这将阻止除您之外的任何帐户访问您的存储桶/密钥。

为了强制用户只能通过您自己的应用程序下载,只需在生成 URLexpires_in时向参数传递一个小值。用户只能通过您的应用程序获得有效的下载链接,下载后该链接将失效。

于 2010-08-17T02:18:34.677 回答
2

django-storages已经有解决这个问题的方法,并且有一个 boto 后端。除了教化,不要自己动手。

于 2011-04-13T21:00:21.423 回答