我想为用户提供一个链接,以便在我的rails应用程序中从Amazon S3下载非公共文件 . 这不是用户上传的文件,只是我上传的一个文件,任何登录的人都应该可以下载 .

我'm getting lost in S3 documentation/parameters/syntax. Like hours lost. Here'是非公共文件的亚马逊网址:https://s3-us-west-1.amazonaws.com/physicianneedtool/static/Historical_Payer_Profile.xlsx . S3_BUCKET,S3_KEY,S3_SECRET_KEY和S3_REGION变量已经可以在应用程序中使用我的carrierwave设置,所以我知道它们很好 .

我目前的非工作代码:

s3 = Aws::S3::Resource.new(region: ENV["S3_REGION"], 
                           access_key_id: ENV["S3_KEY"], 
                           secret_access_key: ENV["S3_SECRET_KEY"])

@file_url = s3.bucket(ENV["S3_BUCKET"])
              .object('Historical_Payer_Profile.xlsx')
              .get(response_target: 'static/Historical_Payer_Profile.xlsx')

我得到的错误是Aws :: S3 :: Errors :: NoSuchKey . 在rails控制台中,我发现s3.bucket(ENV [“S3_BUCKET”]) . object('Historical_Payer_Profile.xlsx')返回一个看似有效的S3对象,所以看起来错误是由最后的.get调用引起的 . 我在那里做错了什么?为response_target指定的路径是我从S3控制台中的复制路径按钮获得的确切路径 .