を使用して Web サイト上のファイルに関する詳細を取得する Ruby スクリプトを作成しようとしていますnet/http
。私のコードは次のようになります。
require 'open-uri'
require 'net/http'
url = URI.parse asset
res = Net::HTTP.start(url.host, url.port) {|http|
http.get(asset)
}
headers = res.to_hash
p headers
このリクエストから 2 つの情報を取得したいと思います: コンテンツの拡張された全長と、(必要に応じて) 収縮されたコンテンツの長さです。
ヘッダーにはcontent-length
、コンテンツの gzip 圧縮された長さのように見えるパラメーターが含まれることがあります。res.body.length を使用して、コンテンツの膨張したサイズを概算することもできますが、これは想像力を駆使しても絶対確実ではありません。のドキュメントにnet/http
は、gzip ヘッダーがリストから自動的に削除されると書かれているため (私を助けるために、よろしくお願いします)、この情報について信頼できるハンドルを取得できないようです。
どんな助けでも大歓迎です(これをより簡単に行うことができる場合は、他のgemを含めて)。