相关疑难解决方法(0)

麻烦设置Paperclip + AWS S3在我们的Rails3/Heroku应用程序中存储图像

我们已经构建了一个rails应用程序,其中包含多个用户和每个用户的图像.在我们的localhost上完成所有开发工作,我们为用户和照片提供了工作种子......但是现在我们正在尝试使用S3进行图像存储,我们在...期间遇到错误...迁移步骤,执行此操作时:

rake db:migrate:reset

对这个问题道歉,但是我们已经在这个问题上持续了11个小时,经历了关于这个问题的每一个相关的Stack问题.很多类似的帖子都有NoSuchBucket错误和其他类型的问题,但我们没有提出任何建议的修改已经解决了我们的问题...也许它与我们正在使用的宝石的最新版本有关?

我们使用的是Rails 3.0.4,Ruby 1.8.7,Paperclip 2.3.8,aws-s3 0.6.2

我们使用/ migrate /文件夹中的seeds.rb文件为初始用户添加种子,为每个用户添加照片.在本地计算机上存储文件和图像(使用回形针,但不是S3)时,这始终正常工作.我们还测试了删除种子文件,只是使用工作应用程序创建一个新用户并得到了同样的错误:

凭据不是路径,文件或散列

对于用户模块,我们已经测试了通过(a)yml文件和(b)直接在用户模型中设置以下S3密钥的选项.access_key_id:'秘密'secret_access_key:'秘密'

我们已尝试从我们的localhost(尚未使用heroku)执行此操作,我们也尝试通过Heroku运行此操作.

我们似乎尝试了这些键的布局的每个排列,但我们最常得到的错误是:

无法将Module转换为Hash

谷歌搜索此错误消息返回零结果,所以我们不知道那里发生了什么.这是最令人沮丧的部分......似乎每一次尝试都让我们回到了这个错误.

我们也试过了两个:

(1)硬编码用户模型中的访问密钥,如下所示:

:access_key_id => ENV['accesskeyid'],
:secret_access_key => ENV['secretaccesskey'],
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们经常遇到这个错误:

您没有提供所需的访问密钥.请提供access_key_id和secret_access_key.

令人沮丧,因为我们总是列出两个项目,使用和不使用引号进行测试,更改订单等.

我们尝试了(a)与ENV ['accesskeyid']和(b)没有那些...简单地blahblah =>'accesskeyid'.

(2)将密钥放入yml文件中,如下所示:

has_attached_file :photo,
  :storage => :s3,
  :s3_credentials => "#{Rails.root}/config/s3.yml",
  :path => "/:photo/:filename"
Run Code Online (Sandbox Code Playgroud)

在yml文件中使用此文件:

development:
  access_key_id: accesskeyid
  secret_access_key: secretaccesskey
  bucket: ourbucketname
production:
  access_key_id: accesskeyid
  secret_access_key: secretaccesskey
  bucket: ourbucketname
Run Code Online (Sandbox Code Playgroud)

我们尝试使用键周围的单引号,没有.

我们还尝试在模型中定义存储桶,而不是在yml文件中定义存储桶,并得到相同的错误.

(3),这样设置:

如果Rails.env =="production"S3_CREDENTIALS = {:access_key_id => ENV ['S3_KEY'],:secret_access_key => ENV ['S3_SECRET'],:bucket =>"ourbucket"}否则S3_CREDENTIALS = Rails.root.join ("config/s3.yml")
结束

has_attached_file:photo,:storage =>:s3,:styles => …

image-processing amazon-s3 paperclip ruby-on-rails-3

4
推荐指数
1
解决办法
5204
查看次数

如何使用Paperclip和rails 3中的s3存储解决"缺少证书"

我有一个非常简单的模型和附件

has_attached_file :upload,
    :storage => :s3,
       :bucket => 'bestofbauer',
       :s3_credentials => {
         :access_key_id => ENV['MyAccessKEY'],
         :secret_access_key => ENV['MySecretKey']
       }
Run Code Online (Sandbox Code Playgroud)

我有一个名为bestofbauer的s3桶设置.

我知道我可以将凭证重构为初始化程序,但我还没有得到这个来保存附件,所以我并不担心它.

当我运行对象及其附件的保存时,我得到:

RuntimeError in RecommendationsController#create

Missing credentials
Run Code Online (Sandbox Code Playgroud)

我已经倾倒了:使用Paperclip和Amazon s3上传照片时缺少证书,但这并没有解决我的问题.

我使用以下宝石:

gem "paperclip"
gem "sws-sdk"
gem 'aws-s3'
Run Code Online (Sandbox Code Playgroud)

还有其他想法吗?

amazon-s3 ruby-on-rails-3

4
推荐指数
1
解决办法
5515
查看次数

在rails 3.1中使用paperclip和aws-s3的AWS :: Errors :: MissingCredentialsError

我想在aws上传图片.

class Asset < ActiveRecord::Base
  belongs_to :post
  attr_accessible :image
  has_attached_file :image, :styles => { :medium => "640x480>", 
                                     :thumb => "100x100#"},
  :storage => :s3,
   :s3_credentials => "#{Rails.root}/config/s3.yml",
  :path => ":attachment/:id/:style.:extension",
  :bucket => 'yourbucket'
end
Run Code Online (Sandbox Code Playgroud)

s3.yml

development:
  access_key_id: xxxxxxxx

   secret_code: xxxxx
Run Code Online (Sandbox Code Playgroud)

我收到了一条消息

 AWS::Errors::MissingCredentialsError in PostsController#create

Missing Credentials.

 Unable to find AWS credentials.  You can configure your AWS credentials
 a few different ways:

 * Call AWS.config with :access_key_id and :secret_access_key

 * Export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to ENV

* On EC2 you can run …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 ruby-on-rails-3

3
推荐指数
1
解决办法
7547
查看次数