Возможно ли, чтобы open-uri поддерживал расширение? - PullRequest
4 голосов
/ 30 марта 2012

В Ruby, когда вы открываете удаленный файл с помощью open-uri, файловый объект в конечном итоге получает путь с чем-то вроде этого: /tmp/20120329-2113-1-0762/open-uri20120329-1-7dit2c.У меня есть некоторая обработка файла, которая зависит от расширения присутствующего файла.Есть ли способ сохранить расширение или даже принудительно его использовать при использовании open-uri?

Вот краткое описание того, что происходит, когда вы открываете удаленный файл с помощью open-uri и получаете его путь.Путь выглядит совершенно иначе, чем удаленный URL, поскольку это временный уникальный файл, созданный для этого объекта, но проблема заключается в отсутствии расширения:

> require "open-uri"
 => true

> f = open("http://cdn.sstatic.net/stackoverflow/img/sprites.png")
 => #<File:/var/folders/zq/vx2std7x5qj54xc1g4hpm14h0000gn/T/open-uri20120401-38087-13mm6zy>

> f.path
 => "/var/folders/zq/vx2std7x5qj54xc1g4hpm14h0000gn/T/open-uri20120401-38087-13mm6zy"

1 Ответ

0 голосов
/ 30 марта 2012

Почему бы просто не сохранить его с правильным расширением / tmp и не открыть его оттуда?Это дополнительный шаг, но вы можете найти более эффективное решение, когда оно станет узким местом.

...