1

我尝试设置 Amazon S3 支持以使用精炼cms 将图像存储在云中。

我在https://console.aws.amazon.com/s3/创建了存储桶

我把它命名为应用程序“bee-barcelona”,它说它在美国标准地区

~/config/initializers/refinery/images.rb我输入了所有数据(其中 'xxx? 代表我输入的实际键:

# Configure S3 (you can also use ENV for this)
# The s3_backend setting by default defers to the core setting for this but can be set just for images.
config.s3_backend = Refinery::Core.s3_backend
config.s3_bucket_name = ENV['bee-barcelona']
config.s3_access_key_id = ENV['xxx']
config.s3_secret_access_key = ENV['xxx']
config.s3_region = ENV['xxx']

然后我将更改应用到heroku:

heroku config:add S3_KEY=xxx S3_SECRET=xxx S3_BUCKET=bee-barcelona S3_REGION=us-standard

但是,在应用程序中,当我尝试上传时,我只得到:“对不起,出了点问题”。

我错过了什么?

4

2 回答 2

1

多么可悲的错误。在我跑了 10 公里之前,我没有考虑过这个选择……</p>

我将应用程序设置为“养蜂”我在亚马逊上的存储桶被命名为“bee-barcelona”

我确实在应用程序中注册了正确的存储桶。仍然炼油厂试图继续去另一个人的桶,命名为“养蜂”。有了我的密钥,我的文件就不可能在那里结束。

我创建了一个新的应用程序和一个新的存储桶,它们的名字都很疯狂,但是!它们在 AmazonS3 和 GIT 上是一样的!!!

不,它就像一个魅力。

多么罕见的情况……

于 2013-11-07T20:48:49.230 回答
0

我这样做的方式如下:

  • 在 US-STANDARD 区域创建存储桶!!!!!!!!!!!!
  • 你看见了吗?美国标准,不是俄勒冈州,也不是其他任何地方。

  • 将宝石添加到 Gemfile

    gem "fog"
    gem "unf"
    gem "dragonfly-s3_data_store"
    
  • 在 config/application.rb

    config.assets.initialize_on_precompile = true
    
  • 在 config/environments/production.rb

    Refinery::Core.config.s3_backend = true
    
  • 在 config/environments/development.rb

    Refinery::Core.config.s3_backend = false
    
  • 为 heroku(生产)配置 S3,为开发配置本地存储。在 config/initializers/refinery/core.rb

    if Rails.env.production?
      config.s3_backend = true
    else
      config.s3_backend = false
    end
    config.s3_bucket_name = ENV['S3_BUCKET']
    config.s3_region = ENV['S3_REGION']
    config.s3_access_key_id = ENV['S3_ACCESS_KEY']
    config.s3_secret_access_key = ENV['S3_SECRET_KEY']
    
  • 向heroku添加变量:

    heroku config:add S3_ACCESS_KEY=xxxxxx S3_SECRET_KEY=xxxxxx S3_BUCKET=bucket-name-here S3_REGION=us-east-1
    

我有很多问题,因为我在 S3_REGION=us-standard 之前遇到过。这是错误的。如图所示设置您的 US-Standard 存储桶:

S3_REGION=us-east-1

这对我来说在 Rails 4.2.1 和炼油厂 3.0.0 上完美无缺。此外,请确保您对变量使用完全相同的名称。有时它会说 S3_KEY 而不是 S3_ACCESS_KEY 或 S3_SECRET 而不是 S3_SECRET_KEY。只需确保您的文件和 Heroku 变量中有相同的文件即可。

于 2015-05-15T14:50:27.997 回答