ruby-on-rails – Paperclip和Amazon S3问题

ruby-on-rails – Paperclip和Amazon S3问题,第1张

概述我有一个在Heroku上运行的rails应用程序.我正在使用回形针为用户头像和其他一些简单的图像上传,我将S3设置为我的后端,一切似乎都正常工作,除非尝试推送到S3时出现以下错误: The AWS Access Key Id you provided does not exist in our records. 我以为我错误地粘贴了我的访问密钥和密钥,我再次尝试,仍然没有运气.想想也许它只是一个有 我有一个在Heroku上运行的rails应用程序.我正在使用回形针为用户头像和其他一些简单的图像上传,我将S3设置为我的后端,一切似乎都正常工作,除非尝试推送到S3时出现以下错误:

The AWS Access Key ID you provIDed does not exist in our records.

我以为我错误地粘贴了我的访问密钥和密钥,我再次尝试,仍然没有运气.想想也许它只是一个有缺陷的钥匙我停用它并生成一个新的.仍然没有运气.

现在,对于这两个键,我在OS X上使用了S3浏览器应用程序,并且能够连接到每个键并查看我当前的存储桶并添加/删除存储桶.有什么我应该注意的吗?我有我的应用程序的S3和回形针设置就像这样

development:  bucket: (unique name)  access_key_ID: ENV['S3_KEY']  secret_access_key: ENV['S3_SECRET']test:  bucket: (unique name)  access_key_ID: ENV['S3_KEY']  secret_access_key: ENV['S3_SECRET']production:  bucket: (unique_name)  access_key_ID: ENV['S3_KEY']  secret_access_key: ENV['S3_SECRET']has_attached_file :cover,:styles => {      :thumb => "50x50"    },:storage => :s3,:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",:path => ":class/:ID/:style/:filename"

编辑注意:ENV [‘S3_KEY’]和ENV [‘S3_SECRET’]是heroku中的环境变量,我甚至试过直接使用我的键,它仍然不起作用

注意:我刚刚添加了(唯一名称)位,那些实际上并不存在 – 我还验证了存储桶名称,但我甚至认为这没有达到那么远.我也正确设置了我的heroku环境变量,并在dev上进行设置

解决方法 你没有设置一个桶.它位于你的s3.yml文件中,但是你没有从你对has_attached_file的调用中读取这个值.

Paperclip S3文档:
http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3#s3_protocol-instance_method

另外,请注意那些告诉您不要使用Heroku的s3.yml文件的人.这是一种浪费,只是添加了抽象,无需购买任何东西.您已经使用所需的值设置了ENV,因此请使用它们.

我之前已经完成了这个,我不想将s3.yml文件推送到Heroku,但我确实想用一个来测试和开发.在初始化程序中,您可以执行以下 *** 作:

# If an s3.yml file exists,use the key,secret key,and bucket values from there.# Otherwise,pull them from the environment.if file.exists?("#{Rails.root}/config/s3.yml")  s3_config = YAML.load_file("#{Rails.root}/config/s3.yml")  S3[:key] = s3_config[Rails.env]['key']  S3[:secret] = s3_config[Rails.env]['secret']  S3[:bucket] = s3_config[Rails.env]['bucket']else  S3[:key] = ENV['S3_KEY']  S3[:secret] = ENV['S3_SECRET']  S3[:bucket] = ENV['S3_BUCKET']end

然后,当您在模型中设置Paperclip时,可以像这样引用值:

...:s3_credentials => {  :access_key_ID => S3[:key],:secret_access_key => S3[:secret]},:bucket => S3[:bucket]

显然,这意味着您不希望在您的git存储库中拥有您的s3.yml文件(实际上,您不应该这样做).

总结

以上是内存溢出为你收集整理的ruby-on-rails – Paperclip和Amazon S3问题全部内容,希望文章能够帮你解决ruby-on-rails – Paperclip和Amazon S3问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1291975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存