
回复
文件资产迁移,对于图片、文档等文件类数据,需要先将其转换为资产commonType.Asset类型,再封装到分布式数据对象中进行迁移。迁移实现方式与普通的分布式数据对象类似,下面仅针对差异部分进行说明。
在源端,将需要迁移的文件资产保存到分布式数据对象DataObject中,执行流程如下:
将文件资产拷贝到分布式文件目录下,相关接口与用法详见基础文件接口。
使用分布式文件目录下的文件创建Asset资产对象。
将Asset资产对象作为分布式数据对象的根属性保存。
随后,与普通数据对象的迁移的源端实现相同,可以使用该数据对象加入组网,并进行持久化保存。
示例如下:
对端需要先创建一个各属性为空的Asset资产对象作为分布式数据对象的根属性。在接收到on()接口status为restored的事件的回调时,表示包括资产在内的数据同步完成,可以像获取基本数据一样获取到源端的资产对象。
说明
对端创建分布式数据对象时,SourceObject对象中的资产不能直接使用undefined初始化,需要创建一个各属性为空的Asset资产对象,否则会导致资产同步失败。
示例代码如下:
若应用想要同步多个资产,可采用两种方式实现:
可将每个资产作为分布式数据对象的一个根属性实现,适用于要迁移的资产数量固定的场景。
可以将资产数组传化为Object传递,适用于需要迁移的资产个数会动态变化的场景(如用户选择了不定数量的图片)。当前不支持直接将资产数组作为根属性传递。
其中方式1的实现可以直接参照添加一个资产的方式添加更多资产。方式2的示例如下所示:
本文主要引用HarmonyOS官方文档