HarmonyOS之数据管理·分布式文件服务的应用
生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之数据管理·分布式文件服务的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、簡介
① 基本概念
- 分布式文件服務能夠為用戶設備中的應用程序提供多設備之間的文件共享能力,支持相同帳號下同一應用文件的跨設備訪問,應用程序可以不感知文件所在的存儲設備,能夠在多個設備之間無縫獲取文件。
- 分布式文件是指依賴于分布式文件系統,分散存儲在多個用戶設備上的文件,應用間的分布式文件目錄互相隔離,不同應用的文件不能互相訪問。
- 文件元數據是用于描述文件特征的數據,包含文件名,文件大小,創建、訪問、修改時間等信息。
② 運作機制
- 分布式文件服務采用無中心節點的設計,每個設備都存儲一份全量的文件元數據和本設備上產生的分布式文件,元數據在多臺設備間互相同步,當應用需要訪問分布式文件時,分布式文件服務首先查詢本設備上的文件元數據,獲取文件所在的存儲設備,然后對存儲設備上的分布式文件服務發起文件訪問請求,將文件內容讀取到本地。
- 分布式文件服務運作如下圖所示:
③ 權限與限制
- 應用程序如需使用分布式文件服務完整功能,需要申請 ohos.permission.DISTRIBUTED_DATASYNC 權限。
- 多個設備需要登錄相同華為帳號,然后打開多個設備的藍牙,或將多個設備接入同一 WLAN 局域網,才能實現文件的分布式共享。
- 當多臺設備對同一文件并發寫操作時有數據沖突,后寫會覆蓋先寫,應用需要主動保證時序控制并發流程。
- 應用訪問分布式文件時,如果文件所在設備離線,文件不能訪問。
- 網絡情況差時,訪問存儲在遠端的分布式文件時,可能會長時間不返回或返回失敗,應用需要考慮這種場景的處理。
- 當兩臺設備有同名文件時,同步元數據時會產生沖突,沖突的解決策略:
-
- 本地跟遠端沖突 ,遠端文件被重命名,看到的同名文件是本地同名文件,遠端文件被重命名;
-
- 遠端多個設備沖突,以接入本設備 ID 為順序,顯示設備 ID 小的同名文件,其他文件被依次重命名;
-
- 如果組網場景,目錄樹下已經有遠端文件,創建同名文件,提示文件已存在;
-
- 沖突文件顯示 _conflict_dev 后依次加 id;
-
- 同名目錄之間僅融合不存在沖突,文件和遠端目錄同名沖突,遠端目錄后綴加 _remote_directory。
④ 應用場景
- 應用可以通過分布式文件服務實現多個設備間的文件共享,設備1上的應用 A 創建了分布式文件 a,設備2上的應用 A 能夠通過分布式文件服務讀寫設備1上的文件 a。
二、分布式文件服務的 API
- 分布式文件兼容 POSIX 文件操作接口,應用使用 Context.getDistributedDir() 接口獲取目錄后,可以直接使用 libc 或 JDK 訪問分布式文件。
- 分布式文件服務 API 接口功能:
| Context.getDistributedDir() | 獲取文件的分布式目錄 |
三、使用流程
- 應用可以通過 Context.getDistributedDir() 接口獲取屬于自己的分布式目錄,然后通過 libc 或 JDK 接口,在該目錄下創建、刪除、讀寫文件或目錄。
- 設備1上的應用 A 創建文件 hello.txt,并寫入內容"Hello World"。
- 設備 2 上的應用 A 通過 Context.getDistributedDir() 接口獲取分布式目錄。
- 設備 2 上的應用 A 讀取文件 hello.txt。
總結
以上是生活随笔為你收集整理的HarmonyOS之数据管理·分布式文件服务的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之数据管理·分布式数据
- 下一篇: HarmonyOS之数据管理·融合搜索的