質問

Webサーバー上のファイルが与えられた(例: http://foo.com/bar.zip - > HTTPからのみアクセス可能)、そもそもアーカイブ全体をダウンロードせずに日付属性(たとえば[作成、変更])を取得する方法はありますか?

現在、アーカイブをダウンロードして、プログラムで属性を読み取ります。問題は、アーカイブが数十のMIBであるため、全体をダウンロードして、数バイトの情報を読み取ることになるのはリソースの無駄のように思えます。

帯域幅は実質的に無料であることがわかりますが、いずれにせよ無駄になりたくありません。

役に立ちましたか?

解決

読んでみてください 最終更新日 ヘッダーから

他のヒント

HTTP GETリクエストの代わりにHTTPヘッドリクエストを使用して、HTTPヘッダーのみを読み取ってください。 HTTP Getを実行すると、HTTPヘッダーを検査するだけでもファイル全体をダウンロードします。

簡単にするために、@ihorkoと @janthomäからの既存の(完璧な)回答の編集を編集します。もちろん、他のオプションも利用できますが、ここに完全に機能的な答えがあります。

でカールを使用します -I オプション:

-I, --head
(http/ftp/file)http-headerのみを取得します! HTTP-Serversは、これがドキュメントのヘッダー以外に何も得るために使用するコマンドヘッドを備えています。 FTPまたはファイルファイルで使用する場合、Curlはファイルサイズと最後の変更時間のみを表示します。

また、 -s ここではオプションがいいです:

-s, --silent
サイレントモードまたは静かなモード。進捗メーターやエラーメッセージを表示しないでください。カールミュートを作ります。要求するデータは引き続き出力されます。これは、リダイレクトしない限り、ターミナル/stdoutに潜在的にも出力します。

したがって、このようなことはトリックをするでしょう:

curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top