是否可以开放uri维护扩展?

时间:2012-03-30 09:48:08

标签: ruby open-uri

在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 :(得分:-1)

为什么不用正确的扩展名保存到/ tmp,然后从那里打开它?这是一个额外的步骤,但当它成为瓶颈时,你可以寻找更有效的解决方案。