Carrierwave и амазон s3

Я использую драгоценный камень несущей волны для управления загрузкой файлов в моем приложении rails 3, однако я не могу подключиться к своей корзине amazon s3.

Я следовал инструкциям на вики, но они недостаточно подробны, например, где мне хранить свои учетные данные s3?


person hagope    schedule 30.10.2011    source источник


Ответы (2)


Поместите что-то подобное в инициализатор.

CarrierWave.configure do |config|
  config.storage = :fog
  config.fog_directory = 'your_bucket'

  config.fog_credentials = {
    :provider => 'AWS',
    :aws_access_key_id => 'your_access_key'
    :aws_secret_access_key => 'your_secret_key',
    :region => 'your_region'
  }
end

Вы можете хранить свои учетные данные прямо в файле, если хотите (и код является приватным). Либо из отдельного файла, либо из базы, решать вам. Следующее загрузит файл конфигурации и разрешит различные конфигурации на основе env.

# some module in your app
module YourApp::AWS
  CONFIG_PATH = File.join(Rails.root, 'config/aws.yml')

  def self.config
    @_config ||= YAML.load_file(CONFIG_PATH)[Rails.env]
  end
end

# config/aws.yml
base: &base
  secret_access_key: "your_secret_access_key"
  access_key_id: "your_access_key_id"
  region: your_region
development:
  <<: *base
  bucket_name: your_dev_bucket
production:
  <<: *base
  bucket_name: your_production_bucket

# back in the initializer
config.fog_directory = YourApp::AWS.config['bucket_name']
# ...
config.fog_credentials = {
  :provider => 'AWS',
  :aws_access_key_id => YourApp::AWS.config['access_key_id'],
  :aws_secret_access_key => YourApp::AWS.config['secret_access_key'],
  :region => YourApp::AWS.config['region']
}
person numbers1311407    schedule 30.10.2011

Прочтите эту краткую запись в блоге Я писал о том, как это сделать. В основном есть несколько шагов, каждый из которых довольно сложен:

  • Настройка ключей API (позволяющих подключаться к Amazon S3 API)
  • Подключение ключей API к вашей учетной записи (убедитесь, что учетные данные не зарегистрированы в GitHub, если вы используете общедоступное репо)
  • Развертывание изменений наружу.

Надеюсь это поможет!

person Ken Mazaika    schedule 11.06.2015