Skip to content

Commit

Permalink
carrierwave sample
Browse files Browse the repository at this point in the history
  • Loading branch information
iced committed Nov 11, 2011
1 parent 63f1fe9 commit 64e5edf
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 0 deletions.
3 changes: 3 additions & 0 deletions carrierwave/README.md
@@ -0,0 +1,3 @@
1. Edit carrierwave.yml and fill in your SimpleWorker and AWS information. Make sure that AWS S3 bucket exists.
2. Run "ruby carrierwave_worker_init.rb" - this will upload image to S3, so worker will have something to work with, and will create simple html page with link to uploaded image.
3. Finally, run "ruby carrierwave_worker_runner.rb", wait worker to finish and refresh html page.
10 changes: 10 additions & 0 deletions carrierwave/carrierwave.yml
@@ -0,0 +1,10 @@
sw:
project_id:
token:

aws:
access_key:
secret_key:
bucket:

file_name: simple-worker.png
11 changes: 11 additions & 0 deletions carrierwave/carrierwave_configure.rb
@@ -0,0 +1,11 @@
def carrierwave_configure(aws_access_key, aws_secret_key, aws_bucket)
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => aws_access_key,
:aws_secret_access_key => aws_secret_key
}

config.fog_directory = aws_bucket
end
end
33 changes: 33 additions & 0 deletions carrierwave/carrierwave_worker.rb
@@ -0,0 +1,33 @@
require 'simple_worker'

class CarrierWaveWorker < SimpleWorker::Base
require 'RMagick' # it's available at SimpleWorker servers

merge_gem 'carrierwave'
# if you need ActiveRecord support, use following line instead
# merge_gem 'carrierwave', :require => ['carrierwave', 'carrierwave/orm/activerecord']

merge_gem 'fog'

merge 'sample_uploader'
merge 'carrierwave_configure'

attr_accessor :aws_access_key
attr_accessor :aws_secret_key
attr_accessor :aws_bucket
attr_accessor :file_name

def run
carrierwave_configure(@aws_access_key, @aws_secret_key, @aws_bucket)
uploader = SampleUploader.new

uploader.retrieve_from_store!(@file_name)
uploader.cache_stored_file!

i = Magick::ImageList.new(uploader.file.path)
ri = i.rotate(90)
ri.write(@file_name)

uploader.store!(File.new(@file_name))
end
end
18 changes: 18 additions & 0 deletions carrierwave/carrierwave_worker_init.rb
@@ -0,0 +1,18 @@
require 'yaml'
require 'carrierwave'
require 'fog'

require_relative 'sample_uploader'
require_relative 'carrierwave_configure'

conf = YAML.load_file 'carrierwave.yml'
carrierwave_configure(conf['aws']['access_key'], conf['aws']['secret_key'], conf['aws']['bucket'])

uploader = SampleUploader.new
uploader.store!(File.new(conf['file_name']))

File.open("look-at-me.html", "w") do |f|
f.puts "<img src=\"#{uploader.url}\" />"
end

puts "now open look-at-me.html in browser"
20 changes: 20 additions & 0 deletions carrierwave/carrierwave_worker_runner.rb
@@ -0,0 +1,20 @@
require 'yaml'
require 'carrierwave' # must be available at queue time

require_relative 'carrierwave_worker'

conf = YAML.load_file 'carrierwave.yml'

SimpleWorker.configure do |config|
config.project_id = conf['sw']['project_id']
config.token = conf['sw']['token']
end

worker = CarrierWaveWorker.new

worker.aws_access_key = conf['aws']['access_key']
worker.aws_secret_key = conf['aws']['secret_key']
worker.aws_bucket = conf['aws']['bucket']
worker.file_name = conf['file_name']

worker.queue
3 changes: 3 additions & 0 deletions carrierwave/sample_uploader.rb
@@ -0,0 +1,3 @@
class SampleUploader < CarrierWave::Uploader::Base
storage :fog
end
Binary file added carrierwave/simple-worker.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 64e5edf

Please sign in to comment.