Class: S3Browser::Worker
- Inherits:
-
Object
- Object
- S3Browser::Worker
- Includes:
- Shoryuken::Worker
- Defined in:
- lib/s3browser/worker.rb
Defined Under Namespace
Classes: Store
Instance Method Summary collapse
- #add(record) ⇒ Object
-
#initialize ⇒ Worker
constructor
A new instance of Worker.
- #perform(sqs_msg, body) ⇒ Object
- #remove(record) ⇒ Object
Constructor Details
#initialize ⇒ Worker
Returns a new instance of Worker.
17 18 19 |
# File 'lib/s3browser/worker.rb', line 17 def initialize Shoryuken.logger.level = ::Logger::DEBUG if ENV['RACK_ENV'] != 'production' end |
Instance Method Details
#add(record) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/s3browser/worker.rb', line 38 def add(record) bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] info = s3.head_object({ bucket: bucket, key: key }) info = info.to_h.merge(record['s3']['object'].inject({}){|memo,(k,v)| memo[k.downcase.to_sym] = v; memo}) store.add bucket, info end |
#perform(sqs_msg, body) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/s3browser/worker.rb', line 21 def perform(sqs_msg, body) Shoryuken.logger.debug body if body['Records'] body['Records'].each do |record| case record['eventName'] when 'ObjectRemoved:Delete' remove record when 'ObjectCreated:Put' add record end end else raise unless body['Event'] == 's3:TestEvent' end end |
#remove(record) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/s3browser/worker.rb', line 48 def remove(record) bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] store.remove bucket, key end |