綾小路です。
ただ、頂いた処方の副作用 ("ただし、このやり方では実際にファイルをダウンロード
できるか否かまではわかりません。") がどのように表れるのか、少し心配です。
副作用は server や site の不具合以外にもありうるのでしょうか?
存在確認に成功してダウンロードに失敗するケースはいくつか考えられます。
取り急ぎ思いついたものだけ (すべてのケースを考慮したものではありません) を列挙します。
また、「<URL/file> の正しさを check したい」ということでしたが、
私はまだ「正しさ」(期待する結果) の定義を十分理解できていないので、
以下に挙げた例を「副作用」(期待しない結果) と判断すべきかはわかりません。
CASE1.
対象のファイル及びそれが配置されたディレクトリに設定されたパーミッションに依存して、
存在確認に成功してダウンロードに失敗する場合が考えられます。
以下は、実行権限のあるディレクトリ内にある読み込み権限のないファイル
に対する存在確認とダウンロードの実行例です。
$ curl --head 'ftp://localhost/executable_dir/unreadable_file'
Last-Modified: ***, ** *** **** **:**:** ***
Content-Length: 10240
Accept-ranges: bytes
$ echo $?
0
$ curl --output /dev/null 'ftp://localhost/executable_dir/unreadable_file'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 10240 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
curl: (78) RETR response: 550
$ echo $?
78
この状況は wget でも変わりません。
$ wget --quiet --spider 'ftp://localhost/executable_dir/unreadable_file'
$ echo $?
0
$ wget --quiet --output-document /dev/null 'ftp://localhost/executable_dir/unreadable_file'
$ echo $?
8
CASE2.
また、クライアント側でディスク領域が不足していると、
存在確認は成功してダウンロードは失敗します。
$ curl --head 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
Last-Modified: Tue, 21 Jul 2015 15:00:09 GMT
Content-Length: 24163561
Accept-ranges: bytes
$ echo $?
0
$ curl --output binutils-2.25.1.tar.bz2 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0curl: (23) Failed writing body (2648 != 5792)
$ echo $?
23
この状況は wget でも変わりません。
$ wget --quiet --spider 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
$ echo $?
0
$ wget --quiet --output-document binutils-2.25.1.tar.bz2 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
$ echo $?
3
綾小路龍之介
--
AYANOKOUZI, Ryuunosuke <i38w7i3@xxxxxxxxxxx>