在IPFS新增一個檔案
建立test.txt檔案
開啟終端,切換到案頭,建立一個檔案夾test,切換到test中,通過vi建立一個檔案test.txt,檔案裡面輸入Hello World
儲存並且退出。
$ cd Desktop/$ mkdir test$ cd test/$ vi test.txt$ cat test.txtHello World
將test.txt添加到ipfs節點
使用ipfs add
命令添加:
$ cd Desktop/test$ ipfs add test.txtadded QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw test.txt$ ipfs cat QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMwHello World
- 執行
ipfs add test.txt
命令將test.txt
添加到ipfs
當前的節點中;
- 添加到節點之後,會對
test.txt
檔案產生一個唯一hash
QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw
;
- 通過
ipfs cat QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw
命令進行查看。️:資料已經添加到當前本地的ipfs
節點中,但是並沒有同步到ipfs
網路,所以還需同步到ipfs
網路。
同步節點,建立一個終端,執行ipfs daemon
命令。
$ ipfs daemonInitializing daemon...Successfully raised file descriptor limit to 2048.Swarm listening on /ip4/127.0.0.1/tcp/4001Swarm listening on /ip4/192.168.17.52/tcp/4001Swarm listening on /ip6/::1/tcp/4001Swarm listening on /p2p-circuit/ipfs/QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdfSwarm announcing /ip4/127.0.0.1/tcp/4001Swarm announcing /ip4/192.168.17.52/tcp/4001Swarm announcing /ip6/::1/tcp/4001API server listening on /ip4/127.0.0.1/tcp/5001Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080Daemon is ready
- 瀏覽器訪問https://ipfs.io/ipfs/QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw,顯示資料為
Hello World
,說明已經同步至ipfs網路
。
通過IPFS建立目錄
通過ipfs files
的相關命令在ipfs
的根目錄下面建立檔案夾,並且將test.txt
檔案移動或者拷貝到我們建立的檔案夾中。
$ ipfs files mkdir /Jisen$ ipfs files cp /ipfs/QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw /Jisen/test.txt$ ipfs files lsJisen$ ipfs files ls /Jisentest.txt$ ipfs files read /Jisen/test.txtHello World
️:cp
不會改變檔案hash,mv
會改變hash定址。
在IPFS新增一個目錄
使用ipfs add -r
可以上傳一整個目錄
$ ipfs add -r ipfs-testadded QmRkk3DQWpJ6A98NJr75fXLeX6GT3Hk3Mmqir6kRWvb3ZP ipfs-test/cryptowallet.pngadded QmZbi1n5wBUx1mx8azhuhBpEq2fewFexrHmRXLeWHofZ7h ipfs-test/dribble_ill.pngadded QmRNFmmrD9yFMn9EP4AiUZmqj9nnmrLQz9q3qHo2u9w7tT ipfs-test/ipfs_test.txtadded QmabKwXZfpT8uZvJRKKW7fHN3Rg5ZjuRMPFnSc1VzMQ7ao ipfs-test
通過路徑訪問ipfs_test.txt
檔案資料
$ ipfs cat QmRNFmmrD9yFMn9EP4AiUZmqj9nnmrLQz9q3qHo2u9w7tTWelcome IPFS!$ ipfs cat /ipfs/QmRNFmmrD9yFMn9EP4AiUZmqj9nnmrLQz9q3qHo2u9w7tTWelcome IPFS!$ ipfs cat /ipfs/QmabKwXZfpT8uZvJRKKW7fHN3Rg5ZjuRMPFnSc1VzMQ7ao/ipfs_test.txtWelcome IPFS!
通過Hash查看資料IPFS網路資料
- 訪問目錄:https://ipfs.io/ipfs/QmabKwXZfpT8uZvJRKKW7fHN3Rg5ZjuRMPFnSc1VzMQ7ao
- 通過目錄訪問檔案:https://ipfs.io/ipfs/QmabKwXZfpT8uZvJRKKW7fHN3Rg5ZjuRMPFnSc1VzMQ7ao/ipfs_test.txt
- 通過檔案hash直接存取:https://ipfs.io/ipfs/QmRNFmmrD9yFMn9EP4AiUZmqj9nnmrLQz9q3qHo2u9w7tT
發布簡易網頁到IPFS
建立一個site
檔案夾,然後按照下面的步驟在site
檔案夾中建立index.html
和style.css
檔案。
建立一個index.html檔案
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Hello IPFS!</title> <link rel="stylesheet" href="./style.css" /></head><body> <h1>Hello IPFS!</h1></body></html>
建立一個style.css檔案
h1 { color: green;}
添加到ipfs
$ ipfs add -r site/added QmS4a85WLxie6Zy6Tntg6CccyGHyV4823Vo1vkjGBYhetP site/index.htmladded QmZL2UBTwnhcLv66fARL9UV8W8a9ZA4iwTLcaUCsB1u1yW site/style.cssadded QmPAygbESghBjPbLhGJAda5rA9GCBMHMGfgwLoB61DfnxX site
網路同步
$ ipfs daemon
- 訪問網站:https://ipfs.io/ipfs/QmPAygbESghBjPbLhGJAda5rA9GCBMHMGfgwLoB61DfnxX
發布到IPNS
修改網頁內容重新添加到ipfs
時,hash
會發生變化,這時我們可以將網頁發布到IPNS
,在IPNS中,允許我們節點的網域名稱空間中引用一個IPFS hash
,也就是說我們可以通過節點ID
對項目根目錄的IPFS HASH
進行綁定,以後我們訪問網頁時直接通過節點ID
訪問即可,當我們更新網頁時,重新發布到IPNS
即可。
$ ipfs name publish QmPAygbESghBjPbLhGJAda5rA9GCBMHMGfgwLoB61DfnxXPublished to QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf: /ipfs/QmPAygbESghBjPbLhGJAda5rA9GCBMHMGfgwLoB61DfnxX$ ipfs id{ "ID": "QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf" ......}
當我們執行ipfs name publish
命令時,會返回我們的節點ID
,你可以通過ipfs id
進行查看驗證是否是你的節點ID。
️:驗證
$ ipfs name resolve QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf/ipfs/QmPAygbESghBjPbLhGJAda5rA9GCBMHMGfgwLoB61DfnxX
接下來,就可以通過IPNS
進行訪問了:https://ipfs.io/ipns/QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf
️:訪問的時候注意上面連結是ipns
而不是ipfs
。
最後需要️:如果網站資料修改,需要重新發布到IPNS。