Delayed_Job and Setting Env


#1

Hi,

I am setting up a background task using delayed job to upload some of
my documents up to scribd from my S3 bucket.

The problem I encounter is that I get an error saying:
Job failed with RightAws::AwsError: AWS access keys are required to
operate on S3

I realize that this is because my job doesn’t know what environment
I’m in so I explicitly set it in the class (ENV[‘RAILS_ENV’] =
“development”). There has to be a better way of doing this so that I
don’t need to to change this every time.

Is there a better way of doing this? Am I not putting this in the
right place?

Thanks

============= Code Snippet Below =============

class Job (in lib/script_job.rb)
attr_accessor :document_id

ENV[‘RAILS_ENV’] = “development”

def initialize(document)
self.document_id = document.id
end

def perform
document = Document.find(document_id)
Scribd::API.instance.key = APP_CONFIG[:scribd_api_key]
Scribd::API.instance.secret = APP_CONFIG[:scribd_api_secret]
Scribd::User.login APP_CONFIG[:scribd_user], APP_CONFIG
[:scribd_password]
upload = Scribd::Document.upload(:file => document.s3_url,
:type => return_doc_type
(document.content_type))

end
end