3

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"
4

1 に答える 1

-1

適切な拡張子を付けて /tmp に保存し、そこから開いてみませんか? 余分な手順ですが、ボトルネックになった場合は、より効率的な解決策を探すことができます。

于 2012-03-30T16:00:26.833 に答える