在 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"
最佳答案
为什么不使用正确的/tmp 扩展名保存它,然后从那里打开它呢?这是一个额外的步骤,但当它成为瓶颈时,您可以寻找更有效的解决方案。
关于ruby - 是否可以让 open-uri 维护扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940633/