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)