apacheで公開されているディレクトリに4.7GBぐらいのファイルを置いて、 友達にダウンロードさせようとしたところ、「ファイルが見えない!」と言われた。
確かに、ブラウザから見えるディレクトリ内ファイルの一覧(+Indexes利用)に表示されない。 しかし、サーバ上のディレクトリを確認すると4.7GBのファイルは確かに存在している。
しかたがないので分割ダウンロードさせた。
環境
$ uname -a
Linux localhost 2.6.9-55.0.12.EL #1 Fri Nov 2 10:57:39 EDT 2007 i686 i686 i386 GNU/Linux
$ rpm -qa | grep httpd
system-config-httpd-1.3.1-1
httpd-suexec-2.0.52-32.3.ent.centos4
httpd-devel-2.0.52-32.3.ent.centos4
httpd-manual-2.0.52-32.3.ent.centos4
httpd-2.0.52-32.3.ent.centos4access.logの内容
192.168.xxx.yyy - - [03/Feb/2008:21:52:04 +0900] "GET /DEKAI.ISO HTTP/1.1" 403 428 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"error.logの内容
[Sun Feb 03 21:52:04 2008] [error] [client 192.168.xxx.yyy] (75)Value too large for defined data type: access to /DEKAI.ISO failedログの内容が示すとおり、デカ過ぎるのが問題らしい。 同じ症状の人をvdrめも – Large File Support の日 – apache2 2GB, 4GB の壁。発見するも、apacheのコンパイルが必要?
面倒なので、splitコマンドでファイルを分割することにした。
$ ll
-rwxr--r-- 1 squld squld 4649607168 2月 24 2006 DEKAI.ISO
$ split -b 1073741824 DEKAI.ISO DEKAI.ISO.
$ ll
-rwxr--r-- 1 squld squld 4649607168 2月 24 2006 DEKAI.ISO
-rw-r--r-- 1 squld squld 1073741824 2月 3 21:57 DEKAI.ISO.aa
-rw-r--r-- 1 squld squld 1073741824 2月 3 21:59 DEKAI.ISO.ab
-rw-r--r-- 1 squld squld 1073741824 2月 3 22:01 DEKAI.ISO.ac
-rw-r--r-- 1 squld squld 1073741824 2月 3 22:02 DEKAI.ISO.ad
-rw-r--r-- 1 squld squld 354639872 2月 3 22:03 DEKAI.ISO.aeこれでブラウザからも見られるようになった。
windows用結合バッチファイルは以下の通り。
$ cat join.bat
COPY /B DEKAI.ISO.aa +DEKAI.ISO.ab +DEKAI.ISO.ac +DEKAI.ISO.ad +DEKAI.ISO.ae DEKAI.ISO分割ファイルと同じディレクトリにjoin.batを置いて、起動すれば結合される。
おしまい。
