詞彙表

檔案、下載與傳輸

iPhone 上的檔案的大部分隨意性都遵循一項有關隔離的規則,而使下載可靠的大部分內容都遵循 HTTP 的一項功能。這些都是,加上檔案從一台裝置傳輸到另一台裝置的方式。

沙盒

每個App只能看到自己的儲存的規則。這就是為什麼一個App無法打開另一個App的下載,以及為什麼「檔案位於影片旁邊」在 iOS 上不存在的原因。

每個App都有一個私人目錄,其他人無法查看。檔案只能透過有意的行為在App之間移動——共享表、檔案選擇器、拖曳——每一個都是人做出的決定,而不是App幫助自己做出的決定。

成本落在小地方。桌面播放器會自動在“film.mkv”旁邊找到“film.srt”;在 iOS 上,沒有“旁邊”,因此必須有意交出字幕檔案,並且App必須能夠記住配對。

另請參閱: App組安全範圍書籤

App組

來自同一開發人員的兩個App的共用容器可以同時打開—沙箱中唯一獲得批准的破解。這是共享擴充將檔案傳遞給其所屬App的方式。

共享擴展是一個獨立於它似乎所屬的App的程式,具有自己的沙箱和非常短的生命週期。它無法寫入主App的儲存。

因此它會寫入一個容器,兩者都可以查看,並且App在下次開啟時會耗盡該容器。沒有任何東西可以跨越開發人員的邊界,也沒有任何東西可以在沒有明確的點選的情況下跨越。

另請參閱: 沙盒

安全範圍書籤

一個令牌,用於記住沙箱外部資料夾(外部磁碟機、iCloud 中的資料夾)的權限,以便App可以稍後重新開啟它而無需再次詢問。

當您透過系統檔案選擇器選擇一個位置時,所授予的權限是針對該時刻的。書籤會在啟動時保留它,並且App必須明確啟動和停止使用它所代表的存取權限。

它使得瀏覽外部 SSD 成為可能,而無需複製任何內容,並且它的範圍完全取決於您選擇的內容 - 一個檔案夾的書籤不會授予任何有關其鄰居的資訊。

另請參閱: 沙盒

範圍請求

向伺服器要求檔案的特定片段(位元組 5,000,000 到 5,999,999),而不是整個檔案。它使下載可恢復,並允許多個連線同時獲取一個檔案。

支援範圍答案的伺服器,包含 206 部分內容和所要求的切片。一個不回答 200 並從頭開始發送所有內容的網路,這就是恢復下載和重新啟動下載之間的區別。

下載引擎的所有有趣之處都取決於這個 HTTP 功能。如果沒有它,連線斷開後將無法恢復,重新啟動後也將無法恢復,並且無法使用多個連線。

另請參閱: 斷點續傳下載並行連線

斷點續傳下載

透過記錄已提交的位元組數並詢問其餘位元組,從確切的停止位置繼續而不是重新開始傳輸。

要求是記錄的數字永遠不會樂觀。當App被終止時,一個被視為已寫入但仍位於緩衝區中的位元組會成為檔案中的一個洞,而影片中間的一個洞是一種損壞,只有在觀看一個小時後才會出現。

這就是為什麼計數必須遵循磁碟寫入而不是網路讀取的原因,也是為什麼前台和背景傳輸之間的每次切換都必須就一個數字達成一致的原因。

另請參閱: 範圍請求背景傳輸

並行連線

multi-connection, chunked download

將一個檔案拆分為多個範圍並一次取得多個檔案。當單一連線受到限制時它會有所幫助,而當瓶頸是您自己的線路時它什麼也不做。

限制每個連線速度的伺服器通常可以被說服在多個連線上提供更多的服務。這就是多連線下載贏得聲譽的地方。

這不是魔法,而且常被誤解。如果您的連線已經飽和,則更多的連線會將相同的容量分成更小的部分並增加開銷。有些伺服器也拒絕或限制來自一個位址的多個請求。

另請參閱: 範圍請求斷點續傳下載

背景傳輸

將下載交給作業系統,以便在App關閉後繼續進行。系統決定時間,這就是它繼續進行的交易。

iOS App在您離開後不久就會停止運作。給予系統背景服務的傳輸在該情況下仍然存在,並且在App終止後仍然存在,並在重新啟動後恢復。

它放棄的是控制權。系統根據自己的電源和網路狀況視圖對這些傳輸進行批次處理,因此背景下載可能會以App內下載不會的方式暫停和恢復 - 並且它會完成。

另請參閱: 斷點續傳下載沙盒

WebDAV

HTTP 的擴展,可將 Web 伺服器轉變為檔案伺服器:清單、讀取、寫入、移動、刪除。這就是 Nextcloud 和 ownCloud 所說的,也是大多數 NAS 盒子所提供的。

因為它的底層是 HTTP,所以 WebDAV 透過與網路上其他任何東西相同的基礎設施運作——沒有特殊的連接埠,沒有特殊的用戶端協議——這就是為什麼它能夠倖存下來,而更複雜的檔案協議卻沒有。

對於那些不願意將檔案放入公司雲端的人來說,這是實用的選擇:您自己的伺服器、您自己的憑證、普通標準。

另請參閱: 雲端儲存

雲端儲存

檔案保存在別人的伺服器上,透過該公司的 API — Dropbox、OneDrive、Box、pCloud 存取。每一種都有自己的介面,這就是App一次支援它們的原因。

沒有通用的雲端協定。每個提供者都設計了自己的 API 和自己的登入流程,因此將提供者新增至App是真正的工作,而不是配置條目。

登入通常是 OAuth,這意味著App永遠不會看到密碼:提供者對人員進行身份驗證並交回一個令牌,該令牌可以隨時從提供者自己的設定中撤銷。

另請參閱: WebDAV

WebRTC

直接連線兩個裝置的標準,一旦連線存在,它們之間無需伺服器。這是裝置到裝置傳輸用來在房間內移動檔案的方法。

小型訊號伺服器將兩個裝置相互介紹(這就是六位數程式碼的用途),然後退出。檔案直接在裝置之間傳輸,不會儲存在裝置之間的任何位置。

在同一網路上,速度與網路允許的速度一樣快。在網路上,這取決於雙方是否可以直接到達,這就是連線偶爾會因為裝置看不到的原因而失敗的地方。

另請參閱: 本機 HTTP 伺服器

本機 HTTP 伺服器

在您自己的網路上應答網路請求的App,因此您電腦上的網路瀏覽器可以開啟您手機提供的頁面。這就是 Wi-Fi Transfer 的工作原理,無需電纜,也無需帳號。

手機顯示地址;電腦開啟它;它所獲得的頁面由電話本身提供。檔案直接透過本地網路移動,永遠不會離開它。

由於同一網路上的任何人都可以存取該位址,因此它需要一個鎖定——輸入代碼、每個操作授予的權限,以及關閉破壞性的權限,除非故意打開。

另請參閱: WebRTC

其他主題