我使用Devise,AWS S3和Highcharts设置了rails应用程序。
目前,用户可以登录并将文本文件上传到S3。然后,Rails直接从AWS请求数据并将其传递给Highcharts进行处理 - 吐出漂亮漂亮的图形。但是,用户当前可以查看已上传的每条数据。
我不确定如何设置用户与其各自上传对象之间的关系。在S3中“范围”数据的最佳方法是什么,以便用户只能看到他们上传的数据?我假设这是通过AWS ACL完成的?
答案 0 :(得分:1)
S3存储桶ACL旨在控制对AWS账户和匿名请求的存储桶访问,如文档here所述。因此,我认为ACL不适用于您的用例。
更好的解决方案可能是IAM policies。这里的想法是为您的应用中注册的每个帐户创建一个新的IAM用户。这可以通过简单和编程方式完成。然后,沿着某条线破坏你的桶命名空间,也许是account_id:
s3://mybucket/account1/
s3://mybucket/account2/
s3://mybucket/account3/
...
在帐户创建时,构建一个IAM策略,授予对 该帐户文件夹的RW访问权限。
我还没有真正尝试过这个用例,但我对它的工作非常有信心。 IAM也是免费的,一旦你弄清楚如何命名亚马逊资源,它的API就很容易使用了。更多详细信息为in the API docs。