Настройка Amazon S3 и Spree - PullRequest
       40

Настройка Amazon S3 и Spree

1 голос
/ 28 ноября 2011

Не могу найти способ для S3 работать с оживлением.Кажется, существует несколько драгоценных камней для этого, но, кажется, не работает для меня.

Ходовые рельсы 3.1.1 с оживлением 0.70.3.

Ответы [ 3 ]

9 голосов
/ 11 декабря 2011

Я использую rails 3.0.10 и spree 0.60 и смог заставить spree использовать хранилище s3 вместо записи в общую папку приложения, выполнив следующие действия. Процесс должен быть одинаковым.

add aws-s3 gem в ваш Gemfile

gem 'aws-s3'

установленный пакет, и после этого я создал файл yaml в каталоге конфигурации с именем s3.yml, и он должен выглядеть примерно так:

development: &DEFAULTS
  bucket: "YOUR_BUCKET"
  access_key_id: "YOUR_ACCESS_KEY"
  secret_access_key: "YOUR_ACCESS_SECRET"

test:
  <<: *DEFAULTS
  bucket: "YOUR_BUCKET"

production:
  <<: *DEFAULTS
  bucket: "YOUR_BUCKET"

Вы можете указать индивидуальные учетные данные для каждой среды, если хотите, но так как у меня все используется один и тот же S3, я решил установить значения по умолчанию.

после этого вам придется переопределить модель изображения или создать декоратор дляваш, который указывает paperclip использовать S3 и чтобы он анализировал файл yaml, созданный для учетных данных.

область, которую вы хотите переопределить, будет такой

has_attached_file :attachment,
                :styles => {:mini => '48x48>', :small => '200x100>', :product => '240x240>', :large => '600x600>'},
                :default_style => :small,
                :storage => :s3,
                :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                :url => "/assets/products/:id/:style/:basename.:extension",
                :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension"

, вы можете изменить эти свойства какнеобходимо, но важно то, что вы указываете: хранилище и: s3_credentials.

3 голосов
/ 13 января 2013

В текущей версии Spree вы можете установить эти значения в инструментах администратора.Но если вы предпочитаете поддерживать его в коде , но без переопределения модели Image , вы можете установить эти значения в config / initializer / spree.rb.Не редактируйте их через портал администратора.

S3_CONFIG = YAML.load_file("#{Rails.root}/config/s3.yml")[Rails.env]

Spree.config do |config|
  config.attachment_styles = ActiveSupport::JSON.encode({
        "mini" => "100x100>",
        "small" => "200x200>",
        "medium" => "400x600>",
        "product" => "400x600>",
        "large" => "600x600>",
        "xl" => "800x800>",
        "xxl" => "1200x1200>",

    })

   #AWS S3
  config.use_s3 = true
  config.s3_bucket = S3_CONFIG['bucket']
  config.s3_access_key = S3_CONFIG['access_key_id']
  config.s3_secret = S3_CONFIG['secret_access_key']
  config.attachment_url = 'products/:id/:style/:basename.:extension'
  config.attachment_path = 'products/:id/:style/:basename.:extension'
end
0 голосов
/ 05 февраля 2013

Вы также можете попробовать AMI BitNami Spree на http://bitnami.org/stack/spree. С уважением.

...