Skip to content

abak-press/apress-amazon_assets

Repository files navigation

Apress::AmazonAssets

Build Status Code Climate

Гем позволяет хранить файлы на Amazon S3.

Содержит в себе две модели: Apress::AmazonAssets::PrivateAsset и Apress::AmazonAssets::PublicAsset.

Отличие между ними в том, что в публичной файлы можно просматривать по прямой ссылке, а в другой только секретной.

Installation

Add this line to your application's Gemfile:

gem 'apress-amazon_assets'

And then execute:

$ bundle

Or install it yourself as:

$ gem install apress-amazon_assets

Usage

В проекте необходимо создать конфиг config/amazon_s3.yml

production:
  bucket: amazon_assets
  access_key_id: AKIAJR44XLNRQVCSDJTQ
  secret_access_key: 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

Модель, хранящая в себе приложенные файлы app/models/name.rb

class Name < ActiveRecord::Base
  has_many :attachments, :class_name => "Apress::AmazonAssets::PrivateAsset", :as => :attachable, :dependent => :destroy, :limit => 3
end

Вначале файлы загружаются локально на сервер и потом через resque загружаются на амазон. Очередь resque называется upload.

В проектном crontab необходимо вызывать автоочистку через rake задачу

rake amazon:private_assets:autoclean
rake amazon:public_assets:autoclean

Gem Releasing

  1. должен быть настроен git remote upstream и должны быть права на push
  2. git checkout master
  3. git pull upstream master
  4. правим версию гема в файле VERSION в корне гема. (читаем правила версионирования http://semver.org/)
  5. apress-gem release --version 0.0.1

Contributing

  1. Fork it ( https://github.com/[my-github-username]/apress-amazon_assets/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request