Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为Rails用户确定AWS S3对象的范围_Ruby On Rails_Amazon Web Services_Amazon S3 - Fatal编程技术网

Ruby on rails 为Rails用户确定AWS S3对象的范围

Ruby on rails 为Rails用户确定AWS S3对象的范围,ruby-on-rails,amazon-web-services,amazon-s3,Ruby On Rails,Amazon Web Services,Amazon S3,我有一个rails应用程序设置,带有Desive、AWS S3和Highcharts 目前用户可以登录并将文本文件上传到S3。Rails然后直接从AWS请求数据,并将其传递给Highcharts进行处理——生成一个漂亮的图形。然而,用户目前可以看到上传的每一条数据 我不知道如何在用户和他们各自上传的对象之间建立关系。在S3中“范围”数据的最佳方式是什么,这样用户只能看到他们上传的数据?我假设这是通过AWS ACL完成的?S3 bucket ACL设计用于控制对AWS帐户的bucket访问和整个匿

我有一个rails应用程序设置,带有Desive、AWS S3和Highcharts

目前用户可以登录并将文本文件上传到S3。Rails然后直接从AWS请求数据,并将其传递给Highcharts进行处理——生成一个漂亮的图形。然而,用户目前可以看到上传的每一条数据


我不知道如何在用户和他们各自上传的对象之间建立关系。在S3中“范围”数据的最佳方式是什么,这样用户只能看到他们上传的数据?我假设这是通过AWS ACL完成的?

S3 bucket ACL设计用于控制对AWS帐户的bucket访问和整个匿名请求,如文档所示。因此,我认为ACL不适合您的用例

一个更好的解决方案可能是。这里的想法是为应用程序中注册的每个帐户创建一个新的IAM用户。这可以通过编程轻松完成。然后,将bucket的名称空间沿某行拆分,可能是account\u id:

s3://mybucket/account1/
s3://mybucket/account2/
s3://mybucket/account3/
...
在创建帐户时,构造一个IAM策略,授予RW仅访问该帐户文件夹的权限


实际上,我还没有为您的用例尝试过这一点,但我相当有信心它会起作用。IAM也免费提供,一旦您弄清楚amazon资源是如何命名的,它的API就非常容易使用。更多详细信息参见。

S3 bucket ACL设计用于控制对AWS帐户的bucket访问和整个匿名请求,如文档所示。因此,我认为ACL不适合您的用例

一个更好的解决方案可能是。这里的想法是为应用程序中注册的每个帐户创建一个新的IAM用户。这可以通过编程轻松完成。然后,将bucket的名称空间沿某行拆分,可能是account\u id:

s3://mybucket/account1/
s3://mybucket/account2/
s3://mybucket/account3/
...
在创建帐户时,构造一个IAM策略,授予RW仅访问该帐户文件夹的权限


实际上,我还没有为您的用例尝试过这一点,但我相当有信心它会起作用。IAM也免费提供,一旦您弄清楚amazon资源是如何命名的,它的API就非常容易使用。更多详细信息如下。

S3是一个平面文件结构,因此是否可以像您提到的那样以编程方式断开名称空间?当然可以。它在技术上是扁平的,但IAM权限的行为似乎不是这样,而且与S3交互的大多数东西都将名称空间前缀视为文件夹。查看IAM Policys的一些工作示例。S3是一个平面文件结构,因此是否可以像您提到的那样以编程方式断开名称空间?当然可以。它在技术上是扁平的,但IAM权限的行为似乎不是这样,而且与S3交互的大多数东西都将名称空间前缀视为文件夹。查看IAM策略的一些工作示例。