將iOS設(shè)備備份到IPFS的技巧
許多人在日常生活中使用iPhone。 Apple手機(jī)的一個(gè)功能是可以將來自手機(jī)的內(nèi)容存儲(chǔ)在Apple Cloud服務(wù)iCloud中。
對(duì)經(jīng)常關(guān)注IPFS又使用的是蘋果手機(jī)的讀者來說不知道有沒有想過:我能不能把蘋果手機(jī)中的內(nèi)容存儲(chǔ)到IPFS中呢?
答案是:當(dāng)然可以。
今天我們就給大家介紹一下如何把蘋果手機(jī)中的內(nèi)容備份存儲(chǔ)到IPFS中去。實(shí)際上這個(gè)方法適用于任何iOS設(shè)備,也包括蘋果手機(jī)。好了,我們就正式開始
1. 設(shè)置私有的IPFS節(jié)點(diǎn)
所謂的私有IPFS節(jié)點(diǎn)就是這個(gè)節(jié)點(diǎn)只有我自己才能使用或我自己充分相信的節(jié)點(diǎn)。私有的IPFS節(jié)點(diǎn)與公共網(wǎng)絡(luò)上的IPFS節(jié)點(diǎn)是不同。
之所以我建議大家使用私有的IPFS節(jié)點(diǎn),是因?yàn)槲覀円獋浞莸奶O果手機(jī)中的內(nèi)容包含了我們自己的個(gè)人隱私信息,我們?nèi)绻麑⑦@些信息備份到公共的IPFS網(wǎng)絡(luò)上,那可能這些信息會(huì)被泄露。
有很多種方法可以搭建私人的IPFS節(jié)點(diǎn),我使用的是“IPFS Desktop”這個(gè)系統(tǒng),關(guān)于它的詳細(xì)信息請(qǐng)參考:https://github.com/ipfs-shipyard/ipfs-desktop
搭建好了私有節(jié)點(diǎn)后,我們需要swarm key。請(qǐng)?jiān)诠?jié)點(diǎn)電腦的命令行工具中運(yùn)行下面的命令:
go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
ipfs-swarm-key-gen > ~/.ipfs/swarm.key
將所有連到我們私有節(jié)點(diǎn)的其它節(jié)點(diǎn)都斷開,請(qǐng)運(yùn)行下列命令:
ipfs bootstrap rm --all
運(yùn)行完這條命令后,我們的私有節(jié)點(diǎn)現(xiàn)在就成為我們唯一的節(jié)點(diǎn)了。在后面的步驟中,我會(huì)教大家如何把更多的私有節(jié)點(diǎn)加進(jìn)這個(gè)系統(tǒng)使我們的備份能存儲(chǔ)在多個(gè)節(jié)點(diǎn)上。
2. 安裝系統(tǒng)所依賴的軟件包
這個(gè)系統(tǒng)所依賴的軟件包是libimobiledevice。這是一個(gè)跨平臺(tái)的庫,它能讓iOS設(shè)備之間互相通信。
如果我們用的是蘋果電腦,那么我們可以用最適合蘋果電腦來安裝libimobiledevice的工具Homebrew。請(qǐng)執(zhí)行下列命令:
brew install libimobiledevice --HEAD
注意:如果Homebrew在我們的蘋果電腦上無法運(yùn)行或我們的電腦不是蘋果電腦而是一個(gè)Linux或Windows電腦,我們就需要編譯從libimobiledevice的源代碼開始編譯運(yùn)行它。這個(gè)詳細(xì)步驟可參考:https://github.com/libimobiledevice/libimobiledevice#libimobiledevice
接下來,我們還要打開WiFi功能,這個(gè)步驟可以參考這個(gè)鏈接:
https://github.com/codynhat/libimobiledevice
3. 與我們的蘋果手機(jī)配對(duì)
裝好libimobiledevice后,我們要做的第一件事就是在節(jié)點(diǎn)上搜索我們的蘋果手機(jī)。請(qǐng)執(zhí)行下列命令:
idevice_id -l -n
這條命令會(huì)搜索并羅列所有通過USB或WiFi連接到節(jié)點(diǎn)的設(shè)備。如果我們的蘋果手機(jī)沒有連接到節(jié)點(diǎn)上,那我們就要先檢查手機(jī)是否已經(jīng)與節(jié)點(diǎn)配對(duì)了,請(qǐng)執(zhí)行下列命令:
idevicepair -u $DEVICE_UDID validate
這條命令會(huì)檢查手機(jī)是否已經(jīng)與節(jié)點(diǎn)配對(duì),如果沒有,請(qǐng)執(zhí)行下列命令:
idevicepair -u $DEVICE_UDID pair
命令執(zhí)行完后,我們會(huì)在蘋果手機(jī)上看到提示“相信這臺(tái)電腦”。我們選擇“相信”,并輸入密碼。
3. 激活加密功能
在正式備份錢,我強(qiáng)烈建議大家激活加密功能。請(qǐng)執(zhí)行下列命令:
idevicebackup2 -u $DEVICE_UDID encryption on -i
執(zhí)行完這條命令后,我們?cè)谶M(jìn)行備份時(shí)會(huì)被提示要輸入密碼。
4. 備份
現(xiàn)在我們開始正式備份。我們需要頂一個(gè)備份的路徑“BACKUP_PATH”。有兩種方法可選:
1)將備份文件臨時(shí)存儲(chǔ)到BACKUP_PATH,然后拷貝到IPFS。
2)將備份文件永遠(yuǎn)存儲(chǔ)到BACKUP_PATH,然后拷貝到IPFS。
方法1是簡化的方法,也是IPFS中常用的方法。它會(huì)將整個(gè)備份文件存儲(chǔ)到本地然后拷貝到IPFS。
方法2用的是filestore方式。
它只是在IPFS系統(tǒng)使用一個(gè)引用,并不在IPFS中真正的存儲(chǔ)文件,文件真正存儲(chǔ)的位置是這個(gè)引用所指向的位置。
當(dāng)用戶訪問IPFS時(shí),會(huì)訪問到這個(gè)引用,然后在引用所指引的真實(shí)存儲(chǔ)位置去獲取文件。使用這種方式就一定要保證文件真實(shí)存儲(chǔ)的位置上要永遠(yuǎn)保存這個(gè)文件,如果萬一這個(gè)位置上的文件被刪掉了,那IPFS的引用就找不到文件了。
想用這個(gè)方法,我們要在IPFS上激活這個(gè)功能,請(qǐng)執(zhí)行下列命令:
ipfs config --json Experimental.FilestoreEnabled true
下面我們開始備份:
idevicebackup2 -u $DEVICE_UDID backup $BACKUP_PATH
5. 將備份存儲(chǔ)到IPFS
方法1:
ipfs add -r "${BACKUP_PATH}/${DEVICE_UDID}"
rm -r $BACKUP_PATH
方法2:
ipfs add --nocopy -r "${BACKUP_PATH}/${DEVICE_UDID}"
好了,這就是我們備份所有iOS設(shè)備(包括蘋果手機(jī))內(nèi)容到IPFS的方法。
我是IPFS/Filecoin社區(qū)發(fā)起人曉熙(加入社區(qū),聯(lián)系v號(hào): liandaoxixi),IPFS/Filecoin是全球共識(shí)最大的去中心化存儲(chǔ)項(xiàng)目,我會(huì)定期在社區(qū)分享專業(yè)的資訊,為IPFS/Filecoin愛好者建設(shè)一個(gè)共贏的學(xué)習(xí)社區(qū)。