Paperclip:Staging App可以从制作桶读取,但写入不同的存储桶?

时间:2014-12-31 20:13:26

标签: ruby-on-rails amazon-s3 paperclip

我运行的是一个临时和开发环境,它是生产数据库的镜像。

我使用Paperclip gem将上传内容存储到S3。我想让生产桶中的非生产READ环境(因为存储文件的位置),但为了安全起见,请写入另一个桶。此外,应用程序应该足够智能,现在可以从上传的不同存储桶中读取。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

我实现这一点的方式是我有一个本地配置文件,与我使用Heroku托管我的应用程序的服务器上的配置不同。

1)我创建了一个名为 config / config.yml

的文件
#S3
S3_KEY: 'xxxxxx'
S3_SECRET: 'xxxxxxxx'
S3_REGION: 'us-east-1'
S3_ASSET_URL: 'appname-dev.s3-website-us-east-1.amazonaws.com'
S3_BUCKET_NAME: 'appname-dev'

2)我将 config / config.ym 中的变量读入 config / application.rb 需要File.expand_path(' ../ boot', FILE

require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)

    module Appname
      class Application < Rails::Application
        config.before_initialize do
          dev = File.join(Rails.root, 'config', 'config.yml')
          YAML.load(File.open(dev)).each do |key,value|
            ENV[key.to_s] = value
          end if File.exists?(dev)
        end
      end
    end

然后在Heroku我设置配置变量

我希望这能够提供帮助。

答案 1 :(得分:0)