這幾天因為發現自己以前文章裏面提供的文件下載鏈接有不少已經失效了,給不少來到我的博客的朋友帶來了一些不便。之前對於建立個人的文件下載中心沒有什麽概念,前幾年流行網盤,所以不少的文件上傳到網盤中再提供給大家下載。
這幾年網盤的關閉的形勢,讓我又把之前的下載文件放在了一個提供文件存儲服務器的主機商,例如阿裏雲OSS、騰訊雲COS等,雖然存儲是有保障了但是這畢竟是付費的存儲,文件下載又是高耗流量的服務,一天十幾個GB的流量也是讓人承受不了。
怎麽才能讓網站的文件下載既方便而成本小呢?有朋友就給我推薦了兩個優秀目錄列表程序Directory Lister和h5ai。通過試用,發現Directory Lister安裝使用最簡單,兼容性最廣,而h5ai功能很強,可以直接在線預覽視頻、圖片、音樂等,效果很炫。
所以,本文就來為大家分享這兩款優秀目錄列表程序:Directory Lister和h5ai,希望有需要的個人的博客在建立自己的文件可以用得上。更多的有關於建立個人雲存儲的方法,可以看看:
- 1、OwnCloud私有雲存儲搭建方案-VPS主機安裝和Docker部署OwnCloud
- 2、利用Resilio Sync搭建私有雲-免費不需要專用服務器可實現實時同步共享
- 3、應對各類網盤關閉最有效方法以及使用Aria2+KodExplorer輕松搭建個人雲存儲
快速打造文件下載服務器-Directory Lister和h5ai優秀目錄列表程序安裝與使用
一、Directory Lister安裝與使用
1、Directory Lister官網:
- 1、官方首頁:http://www.directorylister.com/
- 2、下載地址:Directory Lister下載。
2、Directory Lister是一個基於PHP的簡單的文件下載服務程序,它可以讓用戶方便快捷進入到服務器列表中下載各個文件,安裝簡單,可以自定義模板主題。
3、這裏提供一個由doub.io博主的修改完善版,支持中文,去除不必要的JS、CSS外部鏈接。打開壓縮包後就能看到index.php和Resources文件與文件夾。
4、在上傳文件前你可以將在 resources\themes\bootstrap\index.php 修改標題,在 default_footer.php 修改底部鏈接。
5、接著將文件上傳到你的網站根目錄。
6、打開域名刷新一下,你就可以看到Directory Lister成功運行了。
7、上傳文件到resources同級目錄下,或者創建文件夾,你就可以通過網頁直接查看和下載了。
8、如果用的LNMP環境,不顯示文件和目錄的話,可能是PHP.ini配置的禁用函數有scandir ,去掉即可。演示:https://www.ucblog.net
二、h5ai安裝方法
1、h5ai官網:
- 1、官方首頁:https://larsjung.de/h5ai/
- 2、下載地址:h5ai下載。
2、h5ai安裝要求是PHP 5.5+ ,支持Apache httpd, lighttpd, nginx 和 Cherokee,兼容chrome, Firefox, Opera, Vivaldi, Safari 和 Edge。下載解壓,直接將_h5ai所有內容上傳到你的網站根目錄。
3、接下來打開類似於http://www.07net01.com/_h5ai/public/index.php這樣的地址,用空密碼登錄。
4、h5ai自動檢測你的網站是否符合運行條件。如果你遇到了如下的問題可以參照給出的方法解決:
1 2 3 4 5 6 7 8
PHP version 請升級php版本 Public Cache directory 把_h5ai/public/cache目錄權限設置為777 Private Cache directory把_h5ai/private/cache目錄權限設置為777 Image thumbs 安裝php的GD模塊。 Use EXIF thumbs 安裝php的exif模塊。 Movie thumbs 可以選擇安裝ffmpeg,也可以選擇安裝avconv: PDF thumbs 安裝convert或gm:命令:yum -y install ImageMagick Shell tar, Shell zip, Shell du 在php.ini文件中把exec函數從被禁用中刪除。
4、如果你安裝的是LNMP 1.4一鍵安裝包,解決EXIF thumbs的問題,可以用下方法:
1 2 3 4 5 6 7 8
cd /root/lnmp1.4/src tar -jxvf php-7.1.0.tar.bz2 #已經解壓了不用執行了 cd /root/lnmp1.4/src/php-7.1.0/ext/exif ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 接著打開:/usr/local/php/etc/php.ini 將以下代碼添加到EXIF模塊下: extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/exif.so
5、EXIF模塊要根據你安裝ExIF後得到的命令為準。
6、解決avconv or ffmpeg的問題,可以采取以下方法:
1
apt-get install libav-tools
7、解決tar zip du 命令不存在的問題,你需要打開php.ini文件,把禁用函數中passthru,exec給去掉,同時把scandir函數去掉。
三、h5ai使用體驗
1、解決了h5ai配置的問題,按照下面的命令設置好h5ai的首頁為服務器默認首頁,同時刪除網站根目錄的index.php類的文件(如果有的話):
1 2 3 4 5 6 7 8 9 10 11
Apache httpd 2.2/2.4: 修改 httpd.conf 或者是 .htaccess : DirectoryIndex index.html index.php /_h5ai/public/index.php lighttpd 1.4: 修改 lighttpd.conf : index-file.names += ("index.html", "index.php", "/_h5ai/public/index.php") nginx 1.2: 修改 nginx.conf : index index.html index.php /_h5ai/public/index.php; Cherokee 1.2: 修改 cherokee.conf : vserver!1!directory_index = index.html,index.php,/_h5ai/public/index.php
2、現在打開你的域名,你就可以看到h5ai文件列表界面了。
3、h5ai比Directory Lister強的地方就是在於可以預覽音樂、視頻、圖片等文件。
4、圖片支持幻燈片播放。
5、h5ai有不少的功能默認是沒有開啟,例如搜索,文件夾多選,文件夾詳細信息、二維碼支持、修改密碼等,這些你都可以進入_h5ai/private/conf/options.json修改。
四、巧用Wget快速建立文件下載中心
1、使用Directory Lister和h5ai這類的文件下載程序最大的問題就是文件上傳了,雖然我們沒有了Web上傳頁面,但是我們可以直接使用linux命令,這裏就來介紹一下Wget強大之處。
2、Wget基本用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1) 從網上下載單個文件 wget http://www.07net01.com/file.iso 2) 下載一個文件,但以不同的名字存為本地文件 wget --output-document=filename.html freehao123.com 3) 下載一個文件,存到指定的目錄 wget --directory-prefix=folder/subfolder freehao123.com 4) 恢復之前中斷的一個wget下載 wget --continue freehao123.com/big.file.iso wget -c freehao123.com/big.file.iso 5) 下載一個文件,但只在服務器上的版本比本地版本新時才會真正執行 wget --continue --timestamping freehao123.com/latest.zip 6) 用wget下載多個網址,這些網址存於一個文本文件中,一行一個網址 wget --input list-of-file-urls.txt 7) 從服務器下載一些以連續序號為文件名的文件 wget http://example.com/images/{1..20}.jpg wget http://example.com/images/pre-{1..20}-post.jpg 8) 下載一個網頁,包括它所有的內容,比如樣式表和包含的圖片,它們是確保網頁離線顯示所必需的 wget -page-requisites --span-hosts --convert-links --adjust-extension http://example.com/dir/file wget -p -H -k -E http://example.com/dir/file
3、Wget對整個網站進行鏡像:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1) 下載整個網站,包括它所有鏈接的頁面和文件 wget --execute robots=off --recursive --no-parent --continue --no-clobber http://example.com/ wget -e robots=off -r -np -c -nc http://example.com/ 2) 從網站上一個子目錄中下載所有MP3文件 wget --level=1 --recursive --no-parent --accept mp3,MP3 http://example.com/mp3/ wget -l 1 -r -np -A mp3,MP3 http://example.com/mp3/ 3) 將一個網站上的所有圖片下載到同一個目錄中 wget --directory-prefix=files/pictures --no-directories --recursive --no-clobber --accept jpg,gif,png,jpeg http://example.com/images/ wget -P files/pictures -nd -r -nc -A jpg,gif,png,jpeg http://example.com/images/ 4) 從一個網站上下載PDF文件,采用遞歸的方式,但不跳出指定的網域 wget --mirror --domains=abc.com,files.abc.com,docs.abc.com --accept=pdf http://abc.com/ wget -m -D abc.com,files.abc.com,docs.abc.com -A pdf http://abc.com/ 5) 從一個網站上下載所有文件,但是排除某些目錄 wget --recursive --no-clobber --no-parent --exclude-directories /forums,/support http://example.com wget -r -nc -np -X /forums,/support http://example.com
4、Wget高級用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
1) 下載網站上的文件,假設此網站檢查User Agent和HTTP參照位址(referer) wget --referer=/5.0 --user-agent="Firefox/4.0.1" http://freehao123.com 2) 從密碼保護網站上下載文件 wget --http-user=labnol --http-password=hello123 http://example.com/secret/file.zip 3) 抓取登陸界面後面的頁面。你需要將用戶名和密碼替換成實際的表格域值,而URL應該指向(實際的)表格提交頁面 wget --cookies=on --save-cookies cookies.txt --keep-session-cookies --post-data 'user=labnol&password=123' http://example.com/login.php wget --cookies=on --load-cookies cookies.txt --keep-session-cookies http://example.com/paywall 4) 在不下載的情況下,得到一個文件的大小 (在網絡響應中尋找用字節表示的文件長度) wget --spider --server-response http://example.com/file.iso wget --spider -S http://example.com/file.iso 5) 下載一個文件,但不存儲為本地文件,而是在屏幕上顯示其內容 wget --output-document=- --quiet Google.com/humans.txt wget -O- -q google.com/humans.txt 6) 得到網頁的最後修改日期 (檢查HTTP頭中的Last Modified標簽) wget --server-response --spider http://www.07net01.com/ wget -S --spider http://www.labnol.org/ 7) 檢查你的網站上的鏈接是否都可用。spider選項將令wget不會在本地保存網頁 wget --output-file=logfile.txt --recursive --spider http://example.com wget -O logfile.txt -r --spider http://example.com
5、這裏是Wget各個參數說明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
* 啟動 -V, --version 顯示wget的版本後退出 -h, --help 打印語法幫助 -b, --background 啟動後轉入後臺執行 -e, --execute=command 執行`.wgetrc'格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc * 記錄和輸入文件 -o, --output-file=FILE 把記錄寫到FILE文件中 -a, --append-output=FILE 把記錄追加到FILE文件中 -d, --debug 打印調試輸出 -q, --quiet 安靜模式(沒有輸出) -v, --verbose 冗長模式(這是缺省設置) -nv, --non-verbose 關掉冗長模式,但不是安靜模式 -i, --input-file=FILE 下載在FILE文件中出現的URLs -F, --force-html 把輸入文件當作HTML格式文件對待 -B, --base=URL 將URL作為在-F -i參數指定的文件中出現的相對鏈接的前綴 --sslcertfile=FILE 可選客戶端證書 --sslcertkey=KEYFILE 可選客戶端證書的KEYFILE --egd-file=FILE 指定EGD socket的文件名 * 下載 --bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用) -t, --tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制). -O --output-document=FILE 把文檔寫到FILE文件中 -nc, --no-clobber 不要覆蓋存在的文件或使用.#前綴 -c, --continue 接著下載沒下載完的文件 --progress=TYPE 設定進程條標記 -N, --timestamping 不要重新下載文件除非比本地文件新 -S, --server-response 打印服務器的回應 --spider 不下載任何東西 -T, --timeout=SECONDS 設定響應超時的秒數 -w, --wait=SECONDS 兩次嘗試之間間隔SECONDS秒 --waitretry=SECONDS 在重新鏈接之間等待1...SECONDS秒 --random-wait 在下載之間等待0...2*WAIT秒 -Y, --proxy=on/off 打開或關閉代理 -Q, --quota=NUMBER 設置下載的容量限制 --limit-rate=RATE 限定下載輸率 * 目錄 -nd --no-directories 不創建目錄 -x, --force-directories 強制創建目錄 -nH, --no-host-directories 不創建主機目錄 -P, --directory-prefix=PREFIX 將文件保存到目錄 PREFIX/... --cut-dirs=NUMBER 忽略 NUMBER層遠程目錄 * HTTP 選項 --http-user=USER 設定HTTP用戶名為 USER. --http-passwd=PASS 設定http密碼為 PASS. -C, --cache=on/off 允許/不允許服務器端的數據緩存 (一般情況下允許). -E, --html-extension 將所有text/html文檔以.html擴展名保存 --ignore-length 忽略 `Content-Length'頭域 --header=STRING 在headers中插入字符串 STRING --proxy-user=USER 設定代理的用戶名為 USER --proxy-passwd=PASS 設定代理的密碼為 PASS --referer=URL 在HTTP請求中包含 `Referer: URL'頭 -s, --save-headers 保存HTTP頭到文件 -U, --user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION. --no-http-keep-alive 關閉 HTTP活動鏈接 (永遠鏈接). --cookies=off 不使用 cookies. --load-cookies=FILE 在開始會話前從文件 FILE中加載cookie --save-cookies=FILE 在會話結束後將 cookies保存到 FILE文件中 * FTP 選項 -nr, --dont-remove-listing 不移走 `.listing'文件 -g, --glob=on/off 打開或關閉文件名的 globbing機制 --passive-ftp 使用被動傳輸模式 (缺省值). --active-ftp 使用主動傳輸模式 --retr-symlinks 在遞歸的時候,將鏈接指向文件(而不是目錄) * 遞歸下載 -r, --recursive 遞歸下載--慎用! -l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無窮). --delete-after 在現在完畢後局部刪除文件 -k, --convert-links 轉換非相對鏈接為相對鏈接 -K, --backup-converted 在轉換文件X之前,將之備份為 X.orig -m, --mirror 等價於 -r -N -l inf -nr. -p, --page-requisites 下載顯示HTML文件的所有圖片 * 遞歸下載中的包含和不包含(accept/reject) -A, --accept=LIST 分號分隔的被接受擴展名的列表 -R, --reject=LIST 分號分隔的不被接受的擴展名的列表 -D, --domains=LIST 分號分隔的被接受域的列表 --exclude-domains=LIST 分號分隔的不被接受的域的列表 --follow-ftp 跟蹤HTML文檔中的FTP鏈接 --follow-tags=LIST 分號分隔的被跟蹤的HTML標簽的列表 -G, --ignore-tags=LIST 分號分隔的被忽略的HTML標簽的列表 -H, --span-hosts 當遞歸時轉到外部主機 -L, --relative 僅僅跟蹤相對鏈接 -I, --include-directories=LIST 允許目錄的列表 -X, --exclude-directories=LIST 不被包含目錄的列表 -np, --no-parent 不要追溯到父目錄
五、Directory Lister和h5ai使用問題
1、Directory Lister就是一個純粹的文件列表程序,所以功能非常精簡,一個圖片預覽、文檔查看、視頻播放等都沒有的,可能對於用戶來說有些枯燥無味,但是個人認為還是非常適合小博客用作文件下載服務器的。
2、h5ai雖然功能也足夠多,界面也非常好看,但是h5ai安裝與配置比較麻煩,尤其是對於PHP要求過高,一些擴展等都比較難配置,一般LNMP安裝包都沒有這些擴展,需要自己手動安裝,有些麻煩。
文章出自:電腦玩物 部分內容參考wujunze.com版權所有。本站文章除註明出處外,皆為作者原創文章,可自由引用,但請註明來源。
Tags: 下載地址 文件下載 VPS主機 下載文件 阿裏雲
文章來源: