J'essaye d'analyser un fichier pdf stocké à distance sur s3. Voici le code que j'ai quand je parse le fichier sur mon disque localRails open_uri et amazon s3 `open_http ': 403 Interdit (OpenURI :: HTTPError)
@doc = current_user.docs.order("created_at").last #last file uploaded by user
io = open("#{Rails.root}/public" + @doc.doc.url)
reader = PDF::Reader.new(io)
Je ne question pour obtenir l'URL du fichier sur s3 en utilisant ce code
s3 = Aws::S3::Resource.new(
access_key_id: 'XXX',
secret_access_key: 'XXX',
region: 'eu-west-1')
bucket = s3.bucket('my_bucket')
object = bucket.object('mydoc.pdf')
puts object.public_url
Cependant, lorsque je tente pour ouvrir cette URL comme suit
io = open(object.public_url)
J'ai aussi essayé avec interpolation de chaîne
io = open("#{object.public_url}")
je reçois l'erreur `open_http ': 403 Interdit (openURI :: HTTPError)
Comment puis-je contourner cela? Quelle est la bonne façon d'ouvrir une URL d'un fichier stocké sur s3? Merci.
Merci. Cela ne déclenche pas d'erreur mais ne fait pas le travail pour la prochaine étape avec la gemme pdf-reader (lecteur = PDF :: Reader.new (io)) qui me donne l'erreur "extract_io_from": l'entrée doit être un IO-like object ou un nom de fichier (ArgumentError) – Bastien
try 'open (Net :: HTTP.get (URI.parse (objet.public_url)))' –