技术|如何将iOS设备备份到IPFS?

首发

2020-04-04 13:54:24

4234

2351

0

2908

很多人在日常生活中都用的是苹果手机。苹果手机有一项功能是可以把手机中的内容存储到苹果提供的云服务iCloud上。

对经常关注IPFS又使用的是苹果手机的读者来说不知道有没有想过:我能不能把苹果手机中的内容存储到IPFS中呢?

答案是:当然可以。

今天我们就给大家介绍一下如何把苹果手机中的内容备份存储到IPFS中去。实际上这个方法适用于任何iOS设备,也包括苹果手机。好了,我们就正式开始

1. 设置私有的IPFS节点

所谓的私有IPFS节点就是这个节点只有我自己才能使用或我自己充分相信的节点。私有的IPFS节点与公共网络上的IPFS节点是不同。

之所以我建议大家使用私有的IPFS节点,是因为我们要备份的苹果手机中的内容包含了我们自己的个人隐私信息,我们如果将这些信息备份到公共的IPFS网络上,那可能这些信息会被泄露。

有很多种方法可以搭建私人的IPFS节点,我使用的是“IPFS Desktop”这个系统,关于它的详细信息请参考:https://github.com/ipfs-shipyard/ipfs-desktop

搭建好了私有节点后,我们需要swarm key。请在节点电脑的命令行工具中运行下面的命令:

go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen

ipfs-swarm-key-gen > ~/.ipfs/swarm.key

将所有连到我们私有节点的其它节点都断开,请运行下列命令:

ipfs bootstrap rm --all

运行完这条命令后,我们的私有节点现在就成为我们唯一的节点了。在后面的步骤中,我会教大家如何把更多的私有节点加进这个系统使我们的备份能存储在多个节点上。

2. 安装系统所依赖的软件包

这个系统所依赖的软件包是libimobiledevice。这是一个跨平台的库,它能让iOS设备之间互相通信。

如果我们用的是苹果电脑,那么我们可以用最适合苹果电脑来安装libimobiledevice的工具Homebrew。请执行下列命令:

brew install libimobiledevice --HEAD

注意:如果Homebrew在我们的苹果电脑上无法运行或我们的电脑不是苹果电脑而是一个Linux或Windows电脑,我们就需要编译从libimobiledevice的源代码开始编译运行它。这个详细步骤可参考:https://github.com/libimobiledevice/libimobiledevice#libimobiledevice

接下来,我们还要打开WiFi功能,这个步骤可以参考这个链接:

https://github.com/codynhat/libimobiledevice

3. 与我们的苹果手机配对

装好libimobiledevice后,我们要做的第一件事就是在节点上搜索我们的苹果手机。请执行下列命令:

idevice_id -l -n

这条命令会搜索并罗列所有通过USB或WiFi连接到节点的设备。如果我们的苹果手机没有连接到节点上,那我们就要先检查手机是否已经与节点配对了,请执行下列命令:

idevicepair -u $DEVICE_UDID validate

这条命令会检查手机是否已经与节点配对,如果没有,请执行下列命令:

idevicepair -u $DEVICE_UDID pair

命令执行完后,我们会在苹果手机上看到提示“相信这台电脑”。我们选择“相信”,并输入密码。

3. 激活加密功能

在正式备份钱,我强烈建议大家激活加密功能。请执行下列命令:

idevicebackup2 -u $DEVICE_UDID encryption on -i

执行完这条命令后,我们在进行备份时会被提示要输入密码。

4. 备份

现在我们开始正式备份。我们需要顶一个备份的路径“BACKUP_PATH”。有两种方法可选:

1)将备份文件临时存储到BACKUP_PATH,然后拷贝到IPFS。

2)将备份文件永远存储到BACKUP_PATH,然后拷贝到IPFS。

方法1是简化的方法,也是IPFS中常用的方法。它会将整个备份文件存储到本地然后拷贝到IPFS。

方法2用的是filestore方式。

它只是在IPFS系统使用一个引用,并不在IPFS中真正的存储文件,文件真正存储的位置是这个引用所指向的位置。

当用户访问IPFS时,会访问到这个引用,然后在引用所指引的真实存储位置去获取文件。使用这种方式就一定要保证文件真实存储的位置上要永远保存这个文件,如果万一这个位置上的文件被删掉了,那IPFS的引用就找不到文件了。

想用这个方法,我们要在IPFS上激活这个功能,请执行下列命令:

ipfs config --json Experimental.FilestoreEnabled true

下面我们开始备份:

idevicebackup2 -u $DEVICE_UDID backup $BACKUP_PATH

5. 将备份存储到IPFS

方法1:

ipfs add -r "${BACKUP_PATH}/${DEVICE_UDID}"

rm -r $BACKUP_PATH

方法2:

ipfs add --nocopy -r "${BACKUP_PATH}/${DEVICE_UDID}"

好了,这就是我们备份所有iOS设备(包括苹果手机)内容到IPFS的方法。

   
发稿时主流币价 :

2351

好的文章,需要你的鼓励

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

评论