Linux

伺服器文件下載

  • July 9, 2022

我在 Azure 上執行 Ubuntu 虛擬機,在我的登錄頁面上我希望允許下載我已經上傳到伺服器的文件。出於這個原因,我使用 href 標記在我的 index.html 文件中創建了一個超連結,儘管除此之外我還想導航到它,但事實證明我無法完成這兩種方法。具體來說,在輸入我的私有 IP 地址 xx.xxx.xxx.xx 後跟“/”並嘗試不同路徑到我的文件(位於 /home/username/file.ext)後,我在瀏覽器中獲得 404 Not Found。是否有人更了解是否必須通過啟用設置來共享文件,因為除非我需要,否則我不希望使用 Azure Files 和 SharePoint 等替代選項。

對於可以通過 http/https 下載的文件,它必須儲存在文件系統上已被伺服器管理員指定為可公開訪問的位置。

您的個人主目錄/home/username/既不可公開訪問,也不應由管理員公開。

/var/www/html將您的文件放在 Web 伺服器的預設 DocumentRoot (通常是)或您的網站使用的任何其他位置(的子目錄)中。

當您有許多使用者想要允許個人網站和下載區域時,您可以例如啟用和使用 Apache 的Userdir。按照約定,將每個/home/<login>/public_html/子目錄(儘管您可以調整為public_html子目錄名稱)指定為可公開訪問,並且那裡的內容將變得可用http[s]://www.example.com/~login/

當文件已儲存在系統上的正確位置並且下載仍然失敗時,請檢查 Web 伺服器(錯誤)日誌以查找原因。例如,不正確的文件系統權限也可能會阻止下載。

引用自:https://serverfault.com/questions/1105169