在過去一年中,雲存儲服務 Box、Dropbox、Google Drive 和 Microsoft OneDrive-可能還有其他人-已經從自定義內核擴展遷移到 Apple 的新文件提供程序擴展。它提供了一個 Apple 認可的框架,用於將遠程文件集成到 macOS 中並在 Finder 中顯示它們。一年前,我在“雲存儲預測未定,可能出現風暴”(2022 年 2 月 4 日)中談到了這一舉措。
File Provider 擴展 首次出現在 macOS 12.1 Monterey 中,儘管 Apple 的開發者網站表明它可能隨後在 macOS 10.15 Catalina 中可用。早期版本的 macOS 不支持它,因此對於那些運行舊系統的用戶來說,目前沒有任何變化。雲存儲服務可能會在某個時候取消對舊系統的支持,但不知道什麼時候會發生。 (我在下面所說的一切都是我在 macOS 13.2.1 Ventura 中測試過的——有可能,甚至可能,一些細節在蒙特雷有所不同。)
雲存儲公司無疑感到他們在採用方面別無選擇File Provider 擴展,因為 Apple 表示它會在某個時候棄用內核擴展。這還沒有發生,但 Apple 通常會給開發人員幾年的時間來完成該程序。
我的理解是 Box、Google 和 Microsoft 已經將他們的 Mac 用戶遷移到 File Provider 方法,而 Dropbox——可能是日常 Mac 用戶中最受歡迎的-直到最近才開始鼓勵那些不在其測試版計劃之外的人轉換(而其他人仍被要求加入測試版)。很難說清楚,因為雲存儲提供商經常會隨著時間的推移或向部分客戶推出更改,以測試用戶響應、識別問題並減少支持負載。一些 Dropbox 用戶甚至報告說一台 Mac 已升級到新的文件提供程序方法,而其他人則繼續使用內核擴展。
儘管將雲存儲集成到 macOS 中是件好事以連貫的方式,切換到 Apple 的 File Provider 擴展帶來了兩個關鍵變化,需要調整您的工作方式。
第一個變化是本地文件的存儲位置。所有云存儲服務現在必須將其文件存儲在 ~/Library/CloudStorage 中。 (這是在您的主文件夾的 Library 文件夾中,對於大多數用戶來說訪問起來並不容易,因為默認情況下 Library 文件夾是隱藏的。)從一致性和連貫性的角度來看,新的標準位置是一件好事,因為用戶不’必須跟踪每個單獨的服務可能擁有其文件的位置。然而,就像 Mac OS X 引入主文件夾及其現在規範的子文件夾(桌面、文檔、庫、電影、音樂等)一樣,靈活性的喪失會給一些用戶帶來痛點。
第二個變化圍繞文件是否同時存在於本地和在線(“離線”或“固定”)或僅在線(“online-only”)。兩者各有優缺點:
離線文件同時存儲在雲端和本地驅動器上,以便快速訪問。但是,它們會佔用本地存儲空間,如果您的可用空間不足,這可能會成為一個問題。沒有明顯的跡象表明文件處於脫機狀態。僅限在線的文件在打開之前僅作為圖標佔位符在本地存在——它們在 Finder 中的名稱旁邊幾乎沒有云圖標。這種方法可以節省空間,但可能會因加載大文件或連接速度慢而出現加載延遲。當然,如果您缺乏連接,則無法使用僅在線文件。
在您第一次將雲存儲服務遷移到 File Provider 方法後,假設您的所有文件和文件夾都是在線的。情況可能並非如此——你可以通過尋找小雲圖標來判斷——但正如我將在下面討論的那樣,這些文件無法使用快速查看查看,無法通過 Spotlight 編制索引,也無法通過 Time Machine 和其他軟件備份備份應用程序。
您可以控制任何文件或文件夾的狀態。如果您單擊文件或文件夾名稱旁邊的雲圖標,將啟動下載,將其從僅在線變為離線。按住 Control 鍵並單擊離線文件,您會找到用於下載文件(使其離線)或刪除其下載(使其僅在線)的命令。 Dropbox(左下方)依賴於彈出菜單底部“快速操作”部分中的“離線可用”和“僅供在線使用”命令。 Google Drive(右下方)將“立即下載”和“刪除下載”命令放在菜單頂部;它也有快速操作。
當然,在應用程序中打開僅在線文件也會下載它。第三方應用程序在輸入尚未下載的文件時可能會不高興;如果出現錯誤,請確保該文件可離線使用,然後重試。
需要說明的是,離線文件和僅在線文件之間的這種區別對於 File Provider 擴展來說並不是新的或獨有的。所有的雲存儲服務都提供了指定哪些文件或文件夾保存在本地,哪些僅在線存在的方法。細節和含義有所不同,但概念是相同的。
讓我們看看這些文件提供程序更改的一些影響。我在下面重點介紹 Dropbox 和 Google Drive,因為這些是我經常使用的服務,但 Box 和 OneDrive 在大多數情況下應該是相似的。
側邊欄位置可能會更改
File Provider 方法將雲存儲服務引入相互之間以及 macOS 中的其他存儲形式。因此,Apple 已規定它們默認出現在 Finder 窗口邊欄中的“位置”下。您甚至可以在 Finder > 設置/首選項 > 側邊欄中將它們全部打開和關閉。
如果您之前在側邊欄中關閉“位置”項目或經常訪問 Dropbox 或例如,來自收藏夾下側邊欄項目的 Google 雲端硬盤。但是,您可以將任何云存儲服務的側邊欄項目從“位置”拖到“收藏夾”,甚至可以將它們同時放在“位置”和“收藏夾”中。
此更改很小,很容易根據您的喜好進行調整,但我首先提到它是因為您應該單擊您擁有的任何側邊欄項目並確保它們仍然有效,更重要的是,它們仍然正常工作。
注意斷開連接的本地文件夾
為什麼側邊欄項目可能無法轉到正確的地方?當云存儲服務從其自定義內核擴展切換到 File Provider 擴展時,其本地文件夾的位置從您擁有它的位置移動到 ~/Library/CloudStorage。或者至少這是目標。
(快速提醒一下,如果您在主文件夾中沒有看到 Library 文件夾,請按住 Option 並單擊 Go 菜單,這會使 Library 可見。或者,使用主文件夾打開,選擇“查看”>“顯示查看選項”並選擇“顯示庫文件夾”以使其始終可見。)
有些用戶(包括我們)遇到過本地文件夾不移動但斷開連接的情況從服務。由於雲存儲服務會立即同步到新位置,因此您最終可以得到兩個 Dropbox 文件夾,例如,一個位於 ~/Dropbox,另一個位於 ~/Library/CloudStorage/Dropbox。
雲存儲服務通過在其舊位置創建別名來維護用戶的連續性,從而在某種程度上混淆了水域。但是您主文件夾中的 Dropbox 文件夾是別名還是斷開連接的本地文件夾?通過仔細查看文件夾圖標上的彎曲箭頭或使用“文件”>“獲取信息”進行檢查。正如您在下面看到的,我的主文件夾中現在有 Dropbox 和 Google Drive 文件夾別名。
通過將新文件複製到本地文件夾然後檢查雲存儲服務的網站來驗證您的發現查看它是否已上傳。
如果您確實有斷開連接的本地文件夾,則必須進行一些抽查以確保其中的所有內容也存在於在線版本中。為此,我使用 Finder 中的列表視圖,按修改日期排序,然後展開文件夾並檢查最近的文件是否在兩個位置。當我使用 Google Drive 遇到此問題時,我只有少數文件不同步,但如果您看到很多差異,請考慮使用同步軟件,例如 ChronoSync 以確定需要移動哪些文件。
一定要在完成後刪除斷開連接的本地文件夾,以免以後不小心使用它。如果該服務隨後沒有自動為您創建別名,我建議您創建一個,方法是在 ~/Library/CloudStorage 中選擇原始文件,選擇“文件”>“創建別名”,將其拖動到所需位置,然後從名稱中刪除“別名”.
對本地文件和文件夾的引用可能會中斷
在理想情況下,如果雲存儲服務為其重定位的本地文件夾創建了一個別名,從 ~/Library/CloudStorage 到您的任何位置如果以前有,該文件夾中文件或文件夾的任何別名或其他引用都應該繼續有效。
但是,情況並非總是如此,尤其是當您必須清理斷開連接的本地文件夾時。如果您按照我的建議刪除了斷開連接的本地文件夾,則指向其中文件或文件夾的任何別名都會中斷。這很好,從那以後你就知道要重新創建它們了。
同樣,BBEdit、Keyboard Maestro 和 Transmit 等一些應用程序可以選擇將支持文件存儲在雲存儲中,作為在 Mac 之間同步設置和其他數據的一種方式。在上述理想世界中,一切都應該繼續工作,這就是我最近使用一些 Keyboard Maestro 宏遷移 Dropbox 的經驗,這些宏引用了我存儲在 Dropbox 中的 Automator 工作流程和 BBEdit 文本過濾器。
但是,無法保證對文件的引用都將解析到新位置,對於使用雲存儲同步設置的應用程序,您甚至可能不會立即註意到。有關哪些應用程序可能利用雲存儲進行同步的提示,請查看您的各種雲存儲文件夾,尤其是 Dropbox。
外部驅動器支持消失,OneDrive 除外
最重要的新文件提供程序方法的局限性在於 ~/Library/CloudStorage 位於您的內部驅動器上。對於那些在雲存儲服務中擁有數 TB 文件的用戶來說,這是一個大問題。
以前,您可以指定您希望雲存儲服務的本地文件夾所在的位置,從而可以輕鬆地在大型服務器上找到它外部驅動器。使用 File Provider,這將不再可能。左右 Box、Dropbox 和 Google 目前正在說,儘管 Microsoft 已解決該限制通過將“同步根目錄”(必須保留在 ~/Library/CloudStorage 中)與緩存(可以存在於外部驅動器上)與 OneDrive 分開。
用戶對這一變化表示歡迎,尤其是那些使用 Dropbox 來保存奧迪的人o 或視頻處理工作站更新了非常大的共享文件。
這個消息並不完全是壞消息。 2023 年 2 月 17 日,Dropbox 在一個冗長而刻薄的帖子中發布了一條關於失去外部驅動器支持的說明,稱 公司正在研究解決方案,將 Dropbox 文件夾放在外部驅動器上的用戶不會
如果等待 Dropbox 不是一個選項,請考慮開源 Dropbox 客戶端 Maestral。它允許您將 Dropbox 文件夾定位到任何您想要的位置,包括在外部驅動器上。 Maestral 依賴於公共 Dropbox API,這可以防止它僅傳輸文件中從保存到保存發生變化的部分——二進制差異。相反,Maestral 必須傳輸整個文件,這會更慢並且使用更多帶寬。 Maestral 不計入 Dropbox 基本帳戶的三台設備限制(請參閱“Dropbox Limits Free Accounts to Three Devices”,2019 年 3 月 14 日)。
可能還有另一種解決方法,即 將您的整個主文件夾重定位到外部驅動器。在系統設置/首選項 > 用戶和組中按住 Control 鍵並單擊一個用戶以訪問主目錄字段。甚至不要考慮這樣做-即使使用測試帳戶-除非你技術嫻熟並且首先進行了多次備份。
即使假設將主文件夾重定位到外部驅動器也能按預期工作,有負面影響。當然,它不適用於筆記本電腦,而且如果您不想花錢購買昂貴的 SSD,您會因為硬盤驅動器的性能較慢而受苦。此外,還有一些在線討論關於在登錄到位於外部驅動器上的帳戶時安裝 macOS 更新會如何導致問題;該建議似乎是 在使用管理員級別帳戶時更新 macOS內部驅動器。如果您嘗試這樣做,請在評論中告訴我們它是如何工作的。
對於擁有必要的技術能力和優秀後備力量的尋求刺激的人來說,您可以嘗試其他選擇——再次告訴我們如果其中任何一個有效,請發表評論:
Dropbox:如果您已經將 Dropbox 遷移到文件提供程序方法,用戶在 另一個 Dropbox 社區帖子。它涉及使用符號鏈接指向外部驅動器上的 Dropbox 文件夾,類似於 Microsoft 對 OneDrive 所做的。最近,Dropbox 不支持指向外部驅動器上項目的符號鏈接,但也許這種情況已經改變。 Google Drive:儘管 Google Drive 聲稱您無法更改其位置,Google Drive 幫助中 2022 年 5 月的討論forum 建議使用 Unix touch 命令在特定位置創建文件。建議這樣做會導致 Google Drive 應用程序恢復到文件提供程序之前的行為。
拖動文件是移動而不是複制
一些雲存儲服務使用它們的內核擴展將它們的本地文件夾視為一個單獨的捲。實際結果是將文件拖入或拖出服務的本地文件夾會導致複製操作,將原始文件留在原處並在目標位置製作新版本。理智的人可能會就這樣做是對還是錯持不同意見,但無論如何,這是用戶習慣的做法。
使用 File Provider 方法,所有云存儲服務本質上都是內部文件夾驅動器,而不是單獨的捲,因此將文件從桌面拖到 Dropbox 文件夾是移動文件而不是複製文件,就像將文件從 Google Drive 拖到桌面一樣。
這是一個重要的變化,因為服務還必須維護文件的在線副本,因此至少 Dropbox 和 Google Drive 會將文件移動到 Finder 中的另一個文件夾解釋為刪除在線版本,將移動的文件放入服務的在線垃圾箱。兩者都會提醒您正在發生的事情,您可以關閉提醒。
Trashing 保留聯機副本,但本地行為可能會有所不同
那麼當您使用 Finder 刪除文件時會發生什麼來自云存儲服務?它各不相同,我只能說說 Dropbox 和 Google Drive 會發生什麼,但我懷疑 Box 和 OneDrive 將類似於這些方法中的一種或另一種。如果不是這種情況,請在評論中提供更多詳細信息。
使用 Dropbox,您會看到基於文件是離線還是僅在線的不同行為。當您將脫機文件放入垃圾桶時,它會像 Finder 中的任何其他文件一樣簡單地移動到垃圾桶。您可以將其放回原位、將其移至其他位置或通過清空廢紙簍將其永久刪除。但是,當您刪除僅供在線訪問的文件時,Dropbox 會提醒您該文件將立即被刪除(左下方)。當 Dropbox 提示您無法撤消操作時,這意味著它不會將文件放入 Mac 的回收站中,因此 Command-Z 將不起作用。但是,刪除任何一種類型的文件都會將其移至 Dropbox 網站上的“已刪除文件”集合,並在永久刪除前保留 30 天(右下方)。
Google 雲端硬盤沒有這種區別。當您刪除 Google 雲端硬盤中的任何文件(離線或僅在線)時,它會像任何其他文件一樣移入 Mac 的回收站。您可以按 Command-Z 撤消刪除。僅限在線的文件在垃圾箱中保留其云圖標。與 Dropbox 一樣,Google Drive 也會將已刪除的文件放入其在線垃圾桶中,您可以在下面的屏幕截圖中看到我刪除的兩個 ChartOfAccounts 文件。同樣,已刪除的文件在線保留 30 天。
搜索基於雲的內容可能效果不佳
文件的離線/僅在線狀態對搜索有影響。不出所料,如果文件僅供在線訪問,則 Spotlight 無法為其內容編制索引。但是,在 Finder 窗口中搜索文件名應該可以,在第三方實用程序(如 EasyFind 或 查找任何文件。
Google 雲端硬盤為內容搜索提供了一種簡單的解決方法。您可以在 Finder 中調出自定義的 Google Drive 搜索對話框;默認的鍵盤快捷鍵是 Command-Option-G。它在網絡上的 Google Drive 上運行搜索,可以輕鬆搜索存儲在 Google Drive 中的文件的全部內容。它還會在 Google 文檔和 Google 表格中查找內容,這些內容永遠不會出現在 Spotlight 中,因為它們存在於本地驅動器上只是作為指向在線數據的指針。
備份有效,但是……
現在,您可以看到您的 Mac 上並不真正存在僅供在線訪問的文件。這意味著 Time Machine 和其他備份解決方案無法備份它們。似乎所有 Dropbox 文件夾都出現在 Time Machine 中,儘管其中只顯示離線文件。相比之下,Google 雲端硬盤的文件夾只有在包含離線文件時才會出現。同樣,Backblaze 查看並備份 ~/Library/CloudStorage 中的離線文件,但它根本不知道在線文件。這就是為什麼下面顯示的文件夾中只有兩個文件。
正如我在頂部指出的那樣,您應該假設雲存儲服務中的所有內容都是在線啟動的,因此沒有得到支持分別起來。這可能與您無關——畢竟,數據都存在於雲中。但是,如果您與其他人共享文件夾,他們可能會意外(或惡意)刪除文件或整個文件夾,從而將它們從共享組中的每個人中刪除。從理論上講,它們應該在在線垃圾桶或已刪除文件集合中可用,但您可能不想打賭。使用 Time Machine、Backblaze、Super Duper 或任何其他應用程序製作的本地備份可以保護您免受此類錯誤的影響。
這樣的事情時有發生——Tonya 最近遇到這樣一種情況,她的工作組中有人無意中刪除了一個重要的文件包含數週工作的文件夾。可能有其他方法可以恢復它,但是從她的 Time Machine 備份複製很快,並且不需要向 IT 支持開票。
因此,假設您有足夠的磁盤空間,我建議您下載您的整個雲存儲數據存儲,至少是暫時的。把所有東西都放下來,讓 Time Machine 和您的其他備份系統製作一份副本。然後,如果要恢復磁盤空間,請將不需要的文件夾重置為僅在線。您創建的新文件將處於脫機狀態,因為您正在處理它們,因此它們會自動進入備份。
呸!當我開始寫這篇文章時,我認為這將是對遷移到新的 File Provider 擴展後 Dropbox 文件夾如何移動的一個相當簡短的解釋。經過三天的研究和測試,我想我已經了解了所有的細節。但也許不是!如果您仍有疑問,請在評論中提問。