Проблемы с настройкой s3 в приложении Rails 3 Refinery CMS

Я пытаюсь перенести хранилище изображений cms нефтеперерабатывающего завода на Amazon s3 и следую этому руководству:

http://refinerycms.com/guides/how-to-use-amazon-s3-for-storage

Но меня заблокировали здесь:

Существует несколько способов установить их с помощью ваших учетных данных, включая переменные unix или настроить их вручную через Ruby с помощью ENV.

Как определить эти учетные данные. Нужно ли помещать что-то вроде: S3_KEY => «my_key» в мой файл environments.rb? Я пробовал это, и это не сработало. Я также пробовал это:

AWS::S3::Base.establish_connection!(
 :access_key_id     => ENV['S3_KEY'] || 'key_goes_here',
 :secret_access_key => ENV['S3_SECRET'] || 's3_secret_key_here',
)

Не могу понять, как это сделать. Любые идеи приветствуются.


person Lee McAlilly    schedule 11.04.2011    source источник
comment
Метод ключа по умолчанию должен работать. У вас есть лишняя запятая в вашем примере кода.   -  person ghoppe    schedule 11.04.2011


Ответы (1)


Самый безопасный способ — указать их как переменные среды, чтобы они не включались в ваш исходный код. Если вы единственный, у кого есть доступ к источнику, то указание их так, как вы описываете, должно работать.

Вы можете указать их в своем ~/.bashrc

export S3_KEY=mykey
export S3_SECRET=mysecret

Или, если вы просто тестируете локально, вы можете добавить их в свою команду rails.

$ S3_KEY=mykey S3_SECRET=mysecret rails server

Если вы не хотите/не можете использовать переменные среды, другим способом является использование инициализатор для загрузки учетных данных из файла yml: config/initializers/s3_credentials.rb

# Load AWS::S3 configuration values
#
S3_CREDENTIALS = \
    YAML.load_file(File.join(Rails.root, 'config/s3_credentials.yml'))[Rails.env]

# Set the AWS::S3 configuration
#
AWS::S3::Base.establish_connection! S3_CREDENTIALS['connection']

config/s3_credentials.yml

development: &defaults
connection:
    :access_key_id: AAAAAA_your-key-here
    :secret_access_key: 4rpsi235js_your-secret-here
    :use_ssl: true
    bucket: project-development
    acl: public-read

production:
    <<: *defaults
    bucket: project
person ghoppe    schedule 11.04.2011
comment
Спасибо, похоже, загрузка файла yaml — лучший способ сделать это, но я заработал, просто добавив эти строки в мой config/environment.rb ENV['S3_KEY']='XXXXXXXXXXXXXXXXXXX' ENV['S3_SECRET'] ='XXXXXXXXXXXXXXXXXXX' ENV['S3_BUCKET']='my_bucket_name_' - person Lee McAlilly; 12.04.2011
comment
Не могли бы вы сказать, могу ли я ввести для «mykey» и «mysecret» все, что захочу, или мне нужно где-то найти эти значения? Если мне нужно их найти, то где я могу их найти. Более того, когда все настроено, что дальше? Мне нужно что-то перезапустить, выполнить какую-то команду или что-то еще? Как это будет работать? Теперь на моем сайте должны быть все фотографии... правильно? Все это очень запутанно. пожалуйста помоги - person Dantes; 11.08.2012
comment
Надеюсь, вы уже нашли это, но ключевые и секретные значения взяты с портала Amazon S3: .aws.amazon.com/gp/aws/securityCredentials - person Dreyfuzz; 15.04.2013