儲存位置

選擇檔案內容的儲存位置。不同空間可以使用不同的位置。

本頁內容
  1. 類型
  2. 檔案存放在哪裡
  3. 新增位置
  4. 將空間搬移到其他位置
  5. 將全部內容複製到其他位置
  6. 鏡像:在多個位置保有相同檔案
  7. 資料夾空間:將伺服器資料夾作為空間
  8. 檢查位置中的內容
  9. 儲存用量與效能
  10. 位置離線時

類型

類型適用情況
本機資料夾儲存資料夾,或掛載到容器內的其他資料夾,例如 NAS
S3 相容服務AWS S3、Cloudflare R2、Backblaze B2、Wasabi、RustFS 等服務
SFTP使用密碼或私密金鑰連線的伺服器(建議使用 Ed25519 金鑰,而非 RSA)
FTP / FTPS較舊的檔案伺服器

檔案存放在哪裡

在儲存資料夾與每個本機資料夾位置中,每個空間都是一般資料夾,裡面的檔案也都是保留原本名稱的一般檔案。開啟 /storage(compose.yaml 旁的 storage 資料夾),就能找到所有內容:

/storage/company/…              the company space "All files"
/storage/teams/<space name>/…   team spaces
/storage/users/<user name>/…    each user's "My files"

建立空間時,系統會在所選儲存位置的資料夾內建立它的資料夾,通常是預設位置(若選擇已新增為本機資料夾位置的 NAS,則可能是 /nas/teams/…)。這些是資料夾空間:其他程式、SMB 或掃描器複製進去的檔案會出現在 ThirtyFile,網頁上的變更也會直接套用到資料夾。

新增位置

  1. 開啟控制台 › 儲存位置,按一下新增儲存位置。
  2. 選擇類型,填入位址與登入資訊。
  3. 按一下測試連線。系統會寫入、讀回並刪除一個小檔案;測試成功後才能儲存位置。只能寫入但無法刪除檔案的金鑰或帳號不會通過測試,因為 ThirtyFile 將無法清除已刪除的檔案。本機資料夾若尚不存在,儲存時會建立它(參閱未掛載的磁碟與分享)。S3、SFTP 與 FTP 在儲存時會放入一個小型 .thirtyfile-location 檔案(參閱一個地方只能有一個位置)。
  4. 若新空間應建立在這裡,將它設為預設。

之後編輯位置時,只要伺服器、帳號、儲存桶、SFTP 主機金鑰與憑證檢查設定都未變,已儲存的密碼或金鑰就會保留。變更其中任何一項或重設主機金鑰後,必須重新輸入密碼或金鑰。

預設位置只決定新空間建立在哪裡:使用者的「我的檔案」、團隊空間,以及新伺服器上的「全部檔案」。建立團隊空間時可以選擇其他位置,新使用者的「我的檔案」也可以有個別位置(參閱個人空間)。每個空間會留在建立時的位置,因此變更預設位置不會搬移現有空間,新檔案也會繼續存到舊檔案所在的位置。只有搬移空間才會改變位置。

清單顯示的資訊

當位置上還有空間、空間正在移入或移出,或內容儲存區仍有檔案時,不能刪除該位置。管理員從自選資料夾建立的資料夾空間(見下方)不屬於任何儲存位置。

供應商注意事項

未加密的連線(一般 FTP,或透過 http 的 S3)只接受你自己網路內的位址。

將空間搬移到其他位置

在控制台 › 空間管理選取空間,選擇搬移到其他位置…。任何空間都能搬到任何其他位置:內容儲存區之間、資料夾到內容儲存區,或搬到資料夾。對話方塊顯示目前位置與大小,並列出其他位置;位於這台伺服器磁碟上的位置也會顯示可用空間。目標位置空間不足時,對話方塊會提示,且無法開始搬移。繼續搬移只需容納尚未複製的部分;同一磁碟內直接搬移資料夾則不需額外空間。

搬移會在背景分三步執行(此處以內容儲存區中的空間為例;資料夾空間與搬移到資料夾的流程相似,差異見下方):

  1. 複製。空間的每個檔案、先前版本與資源回收筒中的項目都會複製到新位置,並以檔案的 SHA-256 指紋驗證每份副本。期間空間仍可使用;搬移期間上傳或修改的檔案也會複製。
  2. 切換。全部內容就緒後,空間會一次切換到新位置,之後的新檔案都會存到那裡。
  3. 清理。舊副本會在一分鐘後刪除,讓仍在讀取舊副本的下載有時間完成。

切換之前,空間仍在原本位置:停止或取消搬移不會改變使用者看到的內容。內容相同的檔案在整個系統只儲存一次,因此空間與其他位置的空間共用的內容也會一起搬移,那些空間之後也從新位置讀取該內容。

將資料夾空間搬移到 S3、SFTP 或 FTP

資料夾空間(位於儲存資料夾、本機資料夾位置或自選資料夾的空間)可搬到 S3、SFTP 或 FTP 位置的內容儲存區。檔案會改以內容儲存區形式儲存,名稱、資料夾、分享連結、權限、資源回收筒與先前版本都保留。

將空間搬移到資料夾

搬到儲存資料夾或本機資料夾位置(例如 NAS)的空間,會成為資料夾空間,取得獨立資料夾,命名方式與新空間相同(company、teams/<name> 或 users/<user name>,名稱已占用時加編號),且複製期間保持唯讀。

取消搬移到資料夾時,會移除這次建立的資料夾及已複製的內容。

多個空間,或位置上的所有內容

若目標位於這台伺服器的磁碟上,會一次檢查所有選取空間合計需要的可用空間。

追蹤搬移進度

控制台 › 搬移作業先列出未完成的搬移,再列出歷史紀錄。每筆包含空間(使用者的「我的檔案」以使用者命名)、來源與目標位置、已複製檔案與位元組數、速度、剩餘時間與狀態。工作執行時頁面會自動更新。

搬移完成或取消前,不能刪除該空間,也不能刪除以它為「我的檔案」的使用者。

將全部內容複製到其他位置

在控制台 › 儲存位置的位置 … 選單中選擇全部複製到…,會把該位置的全部空間複製到另一個位置,來源保持不變:不會移除檔案,空間仍在原處,預設位置也不變。可用於在 NAS、異地儲存桶或可攜磁碟保存額外副本。若需要反覆建立並保留一段時間的快照,請參閱將檔案備份到其他位置;儲存與還原方式相同。

複製哪些內容

副本存放在哪裡

每次複製會在目標位置取得獨立資料夾 .thirtyfile-backups/<id>,ThirtyFile 的其他功能不會寫入其中。既有內容不會被取代,副本彼此不混合。裡面包含:

因此即使沒有 ThirtyFile,也能找到檔案:清單每一行都記錄檔案路徑與存放內容的物件。

目標可能與來源在同一磁碟或儲存服務;對話方塊會提示這樣的副本無法承受該磁碟或服務故障。相同路徑或互相包含的位置會被拒絕。未加密 FTP 會提示檔案以未加密方式傳輸。若目標位於本伺服器磁碟且可用空間不足,會拒絕複製;S3、SFTP 與 FTP 則無法得知剩餘容量。

複製期間變更的檔案

複製期間空間仍可使用。副本反映建立檔案清單時的狀態(截至):之後修改或刪除的檔案會以當時版本複製,因為內容在複製完成前不會刪除。資料夾空間的檔案會逐一讀取,並檢查讀取期間是否變更;變更過的會重讀。開始前會先檢查其他程式造成的資料夾變更。每個資料夾空間檔案都完整且符合索引紀錄,但其他程式在不同時間修改的全部檔案不代表同一瞬間的整體狀態。

追蹤、暫停與錯誤

控制台 › 備份列出副本、目前工作與進度。複製在背景執行,一次一項工作;關閉頁面後仍會繼續。

副本刪除前,不能刪除持有它的位置或變更該位置的資料夾。移除未使用內容與永久刪除檔案都不會查看 .thirtyfile-backups,因此不會移除副本;瀏覽也不會開啟它(其中清單包含個人空間的檔案名稱)。活動紀錄會記錄副本的建立、還原、檢查與刪除。

從副本還原

選取副本並選擇還原…,再選擇要還原的空間。內容會放入空間本身或你選擇的其他公司/團隊空間頂層的新資料夾,名稱為已還原 <空間> <日期>;不會取代任何既有內容。該空間位置仍保有的內容不會重複複製。

鏡像:在多個位置保有相同檔案

鏡像規則會把某位置上各空間的檔案保存到其他位置,檢查副本,並在原位置故障時從副本讀取。原位置永久遺失時,可將其他位置之一提升為主要位置,空間之後就在那裡讀寫。只有管理員能在控制台 › 鏡像查看與管理鏡像。

鏡像不是備份。鏡像保存目前的檔案狀態:刪除或覆寫檔案後,鏡像也會稍後刪除或覆寫。若要救回誤刪或誤改的內容,仍需保留備份。鏡像讓磁碟、NAS 或儲存桶故障時檔案仍可讀取;備份則保留歷史狀態。

建立鏡像

選擇新增鏡像…(或儲存位置 … 選單中的製作鏡像…),然後設定:

每份內容在每個位置只複製一次,即使多個檔案或空間共用它。檔案、先前版本與資源回收筒都會複製。在目標位置,副本存放在內容儲存區(ab/cd/<sha256>),無論來源是何種空間。

資料夾空間

資料夾空間(儲存資料夾與本機資料夾位置上的全部空間)也能製作鏡像。檔案從資料夾讀取,並在讀取期間檢查;若有變更就重讀。其他程式持續寫入的檔案(例如紀錄或信箱)不會讓同步整體失敗:系統會複製最後一次完整讀到的內容,詳細資訊會標示複製期間有變更(從未完整讀到的檔案尚無副本,也以相同方式列出;個人空間不顯示檔案名稱)。下次同步會再讀取。網頁變更會在數秒後複製;其他程式透過 SMB 或掃描器造成的變更,則要等 ThirtyFile 偵測到:伺服器本機磁碟約 12 秒,NFS 或 SMB 掛載則在下次定期檢查時(預設每 15 分鐘,可調整)。每次同步前會先檢查資料夾變更。

副本如何維護

主要位置故障時

主要位置無法讀取檔案內容時(位置離線、內容遺失或資料夾空間的資料夾不存在),若原則允許從副本讀取,會改從其他位置上已驗證的副本讀取。副本是以 SHA-256 命名的相同內容,因此不會比 ThirtyFile 已知的版本更舊。資料夾空間以索引最後記錄的檔案為準:磁碟故障前數秒由其他程式修改、但 ThirtyFile 尚未偵測到的內容不會出現在副本。每次回退都會記錄於伺服器紀錄;活動紀錄則每個位置最多每 10 分鐘記錄一次(從鏡像讀取)。

只有讀取會回退。主要位置離線時,上傳與空間變更會等待,詳見位置離線時;變更絕不會只寫入鏡像。

提升位置為主要位置

主要位置永久遺失或準備停用時,選擇提升…並指定位置。提升不會自動發生。執行前,對話方塊會顯示兩個位置是否可連線、目標落後多少、會轉移多少內容與哪些空間,以及缺少多少內容。

提升後請檢查原則的位置清單:提升的位置已不在副本清單中;若要保有原本的副本數,請新增其他位置。

移除位置或原則

從清單移除位置、減少副本數或刪除原則,都會停止建立新副本,但已建立的副本仍保留且受刪除保護。控制台 › 鏡像會顯示各位置不再有原則需要的副本數量,並提供移除…。刪除前會再次逐一檢查:原則仍需要的副本、該位置上的原始內容,以及目前來來源位置無法連線的資料夾空間副本都會保留。在此之前,不能刪除持有鏡像或用作原則來源/目標的位置。

資料夾空間:將伺服器資料夾作為空間

儲存資料夾或本機資料夾位置上的每個空間都是資料夾空間(參閱檔案存放在哪裡)。也能把伺服器上的現有資料夾(例如 NAS 分享)顯示為空間。檔案仍以一般檔案留在原位置,也可以透過 SMB 或掃描器直接修改。

  1. 將資料夾掛載到容器,例如 -v /srv/shared:/mnt/shared。
  2. 在控制台 › 空間管理按新增資料夾空間,輸入容器內路徑 /mnt/shared。
  3. 像一般團隊空間一樣新增成員。

使用者開啟資料夾時,ThirtyFile 會尋找外部變更(數秒內不重複檢查;空間正在變更時,例如複製大型資料夾,不檢查;被監看的空間也不檢查,詳見下方。此時清單顯示 ThirtyFile 已知的內容)。系統也每 15 分鐘檢查所有資料夾空間(可在控制台 › 一般調整),或按檢查變更立即執行(大型資料夾會在清單與底部訊息顯示進度,離開頁面仍會繼續)。在資料夾內搬移或重新命名的檔案與資料夾會保留分享連結及權限。檢查找到的項目沒有上傳者(上傳者欄與詳細資料的建立者顯示 —),也不會出現在任何人的最近使用,除非有人開啟或編輯它;舊版 ThirtyFile 找到的項目仍保留空間擁有者為上傳者。系統依磁碟記錄的建立時間區分搬移與新項目。若磁碟未記錄此資訊(部分網路分享),仍可依大小與日期辨識搬移檔案,但搬移資料夾會視為刪除後重新新增,失去分享連結與權限。

在支援的 Linux 本機檔案系統上,變更約 12 秒後會自動出現,因為 ThirtyFile 會監看資料夾。這類空間的定期檢查頻率降為四分之一(一般 15 分鐘設定下為每小時),補足監看可能漏掉的變更。NFS、SMB、9P 與 FUSE/virtiofs 掛載(含 Docker Desktop 分享的主機資料夾)可能不會回報外部變更。無法辨識的檔案系統也採用較保守的後備方式:開啟資料夾時重新檢查(最多每五秒一次),排程檢查維持正常間隔。不會寫入探測檔案來推斷主機事件是否可用。資料夾很多時可能達到 Linux 監看上限(fs.inotify.max_user_watches,常見為 8,192 或更多);紀錄會提示,其餘變更透過開啟時更新與定期檢查發現。在主機上使用 sysctl fs.inotify.max_user_watches=524288 提高上限。所有空間的每個資料夾都會計入(每個使用者都有自己的空間)。

Windows 與 macOS 的 Docker Desktop。主機分享資料夾的變更,會在 ThirtyFile 開啟或重新整理該資料夾時,以及定期檢查時發現,不一定立即出現。仍在寫入的檔案要等穩定後才顯示。重新命名或刪除可能啟動背景檢查,以區分移到空間其他位置與真正刪除。控制台 › 空間管理顯示變更是數秒內出現,或於開啟時檢查,以及實際排程間隔。將間隔設為零會停用排程,但監看不可用時,開啟資料夾仍會檢查。隨時可使用檢查變更做完整檢查。

大型資料夾空間檢查期間,控制台 › 空間管理顯示進度;讀取資料夾與更新索引耗時超過 10 秒時,紀錄會分別記下耗時。參考數值:SSD 上首次檢查 200,000 個檔案,讀取約半秒、建立索引約 25 秒;沒有變更時重新檢查約一至兩秒。網路掛載較慢,因為每個檔案的大小與日期都需透過網路查詢;大型 NFS 或 SMB 資料夾建議保留 15 分鐘或更長的定期檢查間隔。

網頁上的所有操作都會修改資料夾本身:上傳、建立資料夾、重新命名、搬移、複製、編輯與刪除。搬到不同磁碟的空間,或非資料夾空間時,先複製並驗證檔案,再移除來源;期間在資料夾中被修改的檔案會留下,下次檢查變更時出現。頁面底部訊息顯示長時間搬移或複製的進度;即使關閉頁面,伺服器仍會繼續。

檢查位置中的內容

控制台 › 儲存位置各位置的 … 選單還有三個操作,只有管理員可用。

逐步測試

執行檔案處理的每個步驟,並列出各步驟耗時:

  1. 連線到位置。
  2. 寫入小檔案,再讀回並比對。
  3. 以一般上傳的儲存方式上傳較大檔案(24 MB;S3 使用分段上傳),再下載並比對。兩者都會顯示 MB/s 速度。
  4. 刪除測試檔案,並確認已移除。

測試檔案存入 .thirtyfile-check 資料夾,完成後會刪除,步驟失敗也一樣。測試最多兩分鐘;連線慢時會略過大檔案,而非留下未完成內容。失敗步驟會說明原因,例如金鑰無法刪除檔案。

瀏覽

逐層顯示位置中的內容,每頁 200 個項目,附大小與日期。此處不能修改內容。可依儲存原樣下載單一檔案,但待刪除內容與尚在寫入的副本除外。

尋找未使用內容

搜尋該位置內容儲存區中沒有檔案、先前版本或資源回收筒項目使用的內容,例如上傳途中伺服器停止所留下的內容。工作在背景執行,列出結果與總大小。最近 24 小時寫入的內容不會處理,因為上傳先儲存內容再登記;已等待刪除的內容也略過。

確認後,移除 N 個項目會只刪除清單列出的內容。刪除前逐一再次檢查;期間又被使用或寫入的內容會保留。活動紀錄會記下移除操作。

在 S3、SFTP 與 FTP,若 .thirtyfile-location 指向其他位置或其他 ThirtyFile 安裝,會拒絕搜尋與移除:那些內容不是未使用,而是屬於它們。

一個地方只能有一個位置

若兩個位置指向同一地方,彼此會將對方的檔案視為未使用內容。因此不能新增或改為其他位置已使用的地方:同一服務上的相同儲存桶與前綴,或同一 SFTP/FTP 伺服器上的相同資料夾(相對資料夾依帳號分別判定)。

S3、SFTP 與 FTP 的位置也會保存小型 .thirtyfile-location:第一行是位置 ID,第二行是 ThirtyFile 安裝 ID,新增位置時寫入。早於此功能建立的位置,會在下次連線檢查成功時補上。標記指向其他位置或其他 ThirtyFile 安裝的地方不能新增,也不會搜尋或移除其內容。刪除位置時會移除標記。

儲存用量與效能

控制台 › 儲存用量顯示儲存量、時間趨勢與儲存操作表現,只有管理員可見。頂部依空間類型、資源回收筒與先前版本顯示總量,下方每個位置與資料目錄各有一張卡片。

數字的意義

數字計算內容
檔案使用者看到的該位置空間檔案,不含資源回收筒,也是容量配額計算的內容。相同內容的兩個檔案會算兩次。資源回收筒與先前版本列在下方。
ThirtyFile 儲存量ThirtyFile 真正保存的內容:相同內容只存一份的內容儲存區,加上資料夾空間檔案(含資源回收筒)與其中的先前版本。因共用內容可能小於檔案數值,也可能因資源回收筒與版本而更大。
磁碟系統回報的整個磁碟用量,不論其中還有哪些其他內容。只適用於儲存資料夾與本機資料夾位置。同一磁碟上的兩個位置會提示,磁碟只計一次。
容量未知S3、SFTP 與 FTP 不回報剩餘容量;磁碟三秒內未回應也不會測量。此時不顯示百分比或預計用滿時間:未知不等於零。
備份位置上保存的副本與備份;每份內容在每次副本或備份中只計一次。有備份的位置才會顯示。
鏡像位置上保存、原始內容位於其他位置的鏡像。有鏡像的位置才會顯示。
等待刪除刪除失敗的內容(例如位置離線)或搬移後的舊副本,在背景重試。其大小已無法得知。
資料目錄資料庫、縮圖與進行中的上傳,以及所在磁碟。也列出搬移、執行中的工作與待刪除項目。

其他程式對資料夾空間檔案的變更,要在下次變更檢查後才計入。

操作

位置上的每次讀取、寫入、刪除、列目錄與連線檢查都會計時並計數,資料夾空間的檔案讀取與上傳也一樣。資料夾空間內的重新命名、刪除與掃描則不測量。計數在記憶體中進行,每五分鐘寫入一次,不會拖慢檔案操作。伺服器停止時最多會遺失五分鐘的統計。

歷史紀錄

選擇一個位置(或全部)、時間範圍與工作類型。每張圖表標示單位與每個資料點代表的期間。將游標移到圖表,或用方向鍵移動,可查看單一期間數值。顯示為表格列出全部數值;下載 CSV儲存目前顯示的內容。

範圍每個資料點代表保留時間
最近 6 小時、最近 2 天5 分鐘(操作)、15 分鐘(容量)2 天
最近 30 天1 小時45 天
最近一年1 天,依 UTC 計算400 天

容量每 15 分鐘與啟動後不久測量。每小時或每日以最後一次測量代表該期間;操作則按小時與日加總,讓歷史資料維持精簡。時間以瀏覽器時區顯示。最近測量已超過 30 分鐘的卡片會標示已過期。

預計用滿時間以過去 30 天的磁碟用量擬合直線。只有容量已知、至少三天測量資料且使用量穩定增加的磁碟才會顯示;否則頁面會說明未顯示原因。

警示

在警示門檻設定何時提示:磁碟使用率超過指定百分比(預設 90%),或位置最近一小時的操作失敗/逾時比例超過門檻(預設 5%)。失敗警示需要該小時至少 20 次操作。輸入 0 可停用個別門檻。位置離線與測量過期也會警示。警示顯示於頁面頂部,不會寄送電子郵件。

位置離線時

瀏覽、搜尋與整理資料夾仍可使用。開啟、下載與上傳會暫停,位置恢復後自動繼續。有已驗證鏡像的檔案仍可開啟與下載,期間空間會標示離線。資料夾空間的資料夾在磁碟上,因此整理資料夾也會暫停。

未掛載的磁碟與分享

本機資料夾位置常是掛載於伺服器的磁碟或網路分享,例如 /mnt/nas/thirtyfile。未掛載時,資料夾可能遺失,或只是伺服器自身磁碟上的空資料夾。ThirtyFile 不會寫入那裡,否則檔案會落在錯誤磁碟上,重新掛載分享後反而被隱藏。

新伺服器首次啟動且儲存資料夾為新建或空白時,儲存資料夾(Docker 內的 /storage,由 THIRTYFILE_STORAGE 設定)也會取得相同標記,內容為 local。磁碟或 NAS 自行建立的項目(lost+found、#recycle、@eaDir、.DS_Store、System Volume Information、$RECYCLE.BIN)不計入非空判定。一旦位置上有檔案或空間,就不再接受遺失或空的儲存資料夾:ThirtyFile 不會啟動,並提示磁碟區可能未掛載。資料夾有檔案卻缺少 .thirtyfile-location,或標記屬於其他位置時也不會啟動,因為可能與先前使用的磁碟不同。請檢查磁碟區與掛載;確定是正確資料夾後,建立內容為 local 的標記。