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

Не мога да намеря начин S3 да работи с Spree. Изглежда, че има няколко скъпоценни камъни за това, но не изглежда да работят за мен.

Бягащи релси 3.1.1 със спрей 0.70.3.


person elkalto23    schedule 28.11.2011    source източник
comment
какво си пробвал досега? и какви грешки срещаш? Казването, че не работи, всъщност не помага.   -  person leonardoborges    schedule 28.11.2011
comment
изпробвах следния скъпоценен камък github.com/dylanmei/spree-s3.git, или също github.com/thoughtful/spree-s3.git И на двете получавам обект не съществува, когато стартирам rake spree_s3:install   -  person elkalto23    schedule 28.11.2011


Отговори (3)


Работя с rails 3.0.10 и spree 0.60 и успях да накарам spree да използва s3 ​​хранилище вместо запис в публичната папка на приложението, като направя следното. Процесът трябва да е подобен.

добавете 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 акаунт, избрах да задам настройки по подразбиране.

след това ще трябва да замените модела на изображението или да направите декоратор за вашия, който казва на кламер да използва 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"

можете да промените тези свойства според нуждите, но важното е да посочите :storage и :s3_credentials.

person Julio G Medina    schedule 10.12.2011
comment
Ако се случи да превключите Spree на по-нова версия, например 1.0.x, бих ви препоръчал да промените gem от aws-s3 на aws-sdk, защото първият е остарял. Друг бърз начин е да използвате разширението spree-heroku github.com/joneslee85/spree-heroku. Ако изберете Spree 1.1.x, не е необходимо да инсталирате разширение или да замените модела, можете да конфигурирате това в настройката на администратора. Надявам се това да помогне. - person Trung Lê; 07.07.2012

В текущата версия на Spree можете да зададете тези стойности в инструментите за администриране. Но ако предпочитате да го поддържате в код но без да замените модела на изображение, можете да зададете тези стойности в config/initializers/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
person Sunil Gowda    schedule 13.01.2013

Можете също да изпробвате BitNami Spree AMI на http://bitnami.org/stack/spree. За разбирането.

person victor    schedule 05.02.2013