Ruby on rails 真正基本的S3上传凭证

Ruby on rails 真正基本的S3上传凭证,ruby-on-rails,ruby,amazon-web-services,amazon-s3,Ruby On Rails,Ruby,Amazon Web Services,Amazon S3,我第一次尝试AmazonWeb服务,但在理解凭证过程方面遇到了困难 从awsblog.com上的一份报告中,我得知我可以将一个文件上传到我的AWS“bucket”中,如下所示: s3 = Aws::S3::Resource.new s3.bucket('bucket-name').object('key').upload_file('/source/file/path') 在上述情况下,我假设他使用的是默认凭证(如文档中所述),其中他使用特定的环境变量来存储访问密钥和密码或类似的内容。(如果

我第一次尝试AmazonWeb服务,但在理解凭证过程方面遇到了困难

从awsblog.com上的一份报告中,我得知我可以将一个文件上传到我的AWS“bucket”中,如下所示:

s3 = Aws::S3::Resource.new

s3.bucket('bucket-name').object('key').upload_file('/source/file/path')
在上述情况下,我假设他使用的是默认凭证(如文档中所述),其中他使用特定的环境变量来存储访问密钥和密码或类似的内容。(如果这不是正确的想法,请随时告诉我。)

我很难理解
.object('key')
背后的含义。这是什么?我已经很容易地生成了一个bucket,但是它应该有一个特定的键吗?如果是,我如何创建它?如果没有,则应该进入
.object()
中的内容是什么


我想这一定是在什么地方,但我一直没能得到它(也许我误读了文档)。感谢任何给我一些指导的人。

< P>因为S3没有传统目录,你会考虑你的客户机中的整个“文件路径”,即\\Directory \Test.xLs变成“KEY”。对象是文件中的数据

bucket在S3中是唯一的,并且密钥在bucket中必须是唯一的


就凭据而言,有多种提供它们的方法-一种是在代码中实际提供id和秘密访问密钥,另一种是将它们存储在计算机上某个位置的配置文件中(这取决于操作系统类型),然后在生产环境中运行代码时,即在EC2实例上,最好的做法是在分配IAM角色的情况下启动实例,然后在该计算机上运行的任何东西都会自动拥有该角色的所有权限。对于在EC2中运行的代码,这是最好/最安全的选择。

非常感谢您的回复;我觉得我更了解AWS背后的理念。要澄清两件事:
对象('key')
是否因此自动为给定的上传文件生成?(换句话说,我是否需要提供一个“密钥”,或者上述代码是否为我提供了一个密钥?)2)我是否需要以某种方式将所有权分配给我的IAM用户以访问特定的存储桶?(以防万一,我用的是Heroku而不是EC2)再次感谢!我不确定如果您不提供密钥,是否会生成密钥;我总是提供它。不过,尝试一下也很容易。IAM用户将需要获得对存储桶的访问权限,除非您已经公开所有用户的读/写权限-不推荐,