Tengo esta acción de creación para extraer datos de archivos doc y docx usando la gema docx y la gema msworddoc-extractor
if @subject.save if @subject.odoc.present? @odoc_url = @subject.odoc.url if File.extname(URI.parse(@odoc_url).path) == ".docx" @subject.homework= "" doc = Docx::Document.open(@odoc_url) doc.paragraphs.each do |p| @subject.homework = @subject.homework+p.to_html end else MSWordDoc::Extractor.load(@odoc_url) do |doc| @subject.homework= doc.whole_contents end end @subject.save end
ahora, los archivos doc funcionan bien. Mi problema es con doc = Docx Zip::Error: File s3.amazonaws.com/~~~ not found
doc = Docx::Document.open(@odoc_url)
cuando uso el código en mi máquina local, funciona bien. Zip::Error: File s3.amazonaws.com/~~~ not found
No estoy muy seguro de cómo cargar el archivo para que sea accesible para la gema docx
Así que finalmente lo conseguí sin tener que descargar el archivo usando open-uri
doc = Docx::Document.open(open(@odoc_url).path)