AWS NameError sur Rails 3.2.11 sur Heroku


0

L'application My Rails 3.2.11 n'arrive pas à trouver la classe AmazonS3 ci-dessous en production. Je peux l'appeler dans une console rails avec quelque chose comme AmazonS3.create(), mais pour une raison quelconque quand je l'appelle dans PdfGen.create_pdf (qui est appelé à partir d'un contrôleur Rails lors d'une requête), je reçois le NameError ci-dessous.

Erreur Je continue à obtenir

Job PdfGen.create_pdf (id = XX) Failed (5 tentatives antérieures) avec NameError: uninitialized AmazonS3 constante :: AWS

config/application.rb

config.autoload_paths += %W(#{config.root}/lib}) 
    config.autoload_paths += Dir["#{config.root}/lib/**/"] # include all subdirectories 

Gemfile.lock

aws-sdk (1.60.1) 
     aws-sdk-v1 (= 1.60.1) 
    aws-sdk-v1 (1.60.1) 

lib/amazon_s3.rb

class AmazonS3 
    def self.signed_url(s3_key) 
    s3 = AWS::S3.new(:access_key_id => S3Config.access_key_id, :secret_access_key => S3Config.secret_access_key) 
    bucket = s3.buckets[S3Config.bucket] 
    bucket.objects[s3_key].url_for(:read, :expires => EXPIRES_IN_YEAR_2036) 
    end 
end 

lib/pdf_gen.rb

class PdfGen 
    def self.create_pdf 
    ##some code to generate a pdf 

    AmazonS3.create(amazon_s3_key, response.body) #store on S3 bucket 
    end 
end 
1

Comme il se trouve, ce fut un problème avec la pierre elle-même. J'ai ajouté:

gem 'aws-sdk-v1' 

au Gemfile au lieu de aws-sdk et cela a fonctionné.