這個問題是重複的StackOverflow 中的一項,建議我在這裡問這個問題。如果多重貼文不受歡迎,我深表歉意。
我在使用 FTP 時遇到了一個非常奇怪的問題,這讓我煩惱不已。這是我第一次看到這個問題。
當我上傳文件時,它不會覆蓋原始文件,而是被重命名為 [original file.ext].1(或 [file].2,如果 [file].1 已存在)。例如,如果伺服器上存在 style.css,並且我下載並編輯它,當我將其上傳回原位時,它會被「重新命名」為樣式.css.1。第二次嘗試會產生第三個文件,名為樣式.css.2。
我擁有自己的熨斗,上面安裝了 OpenSUSE 11.4 64 位元(相對較新的安裝,剛剛配置)。我正在使用 pure-ftpd 並使用 YAST 控制面板來操作設定。 Umask (umask files:umask dirs) 設定特別設定為 000:000(唯一可以為上傳的檔案提供與現有檔案相同權限的設定)。我為每個人都設定了 Chrooted ftp 存取權限,為了讓 FTP 存取 /srv/www/,我使用了以下說明這個網站使用綁定作業將 /srv/www/ 掛載到 /home/[user]/ftp/ 內。因此,FTP 存取權限針對非常安全的使用者進行了 chroot,但該使用者仍然可以存取 /srv/www/ 中的內容。
我還花時間為 /srv/www/ 的內容提供與使用者本身相同的權限和 user:group (即,應該沒有權限問題)。
我使用 WS_FTP Pro 2007 以及 Notepad++(透過 NppFTP)訪問該網站,兩個客戶端都有相同的問題:我可以很好地下載文件,但是當我上傳它們時,它們會附加“.#”( .1 、.2、.3 等)而不是覆蓋原始文件。這些新檔案具有與原始檔案相同的權限和所有權(使用者:群組),因此我完全不知道為什麼上傳會建立新檔案而不是覆蓋。
編輯補充:此後我嘗試了幾種不同的 FTP 用戶端,包括 Windows 命令列中的 FTP 功能,但最終結果相同。
答案1
pure-ftpd 中多次提到「自動重命名」功能。是不是只要把它關掉就可以了?http://pureftpd.sourceforge.net/README
雖然檔案名稱描述看起來不太可能是 ftp 用戶端使用 STOU 選項?http://www.nsftools.com/tips/RawFTP.htm
這個 Q+A 可能也有一些幫助 FTP 伺服器如何處理現有檔案的重命名?