ipfs-api訪問IPFS的方法是什么

這篇“ipfs-api訪問IPFS的方法是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“ipfs-api訪問IPFS的方法是什么”文章吧。

為雞西梨樹等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及雞西梨樹網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、雞西梨樹網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

二、ipfs-api安裝與使用

星際文件系統(tǒng)Ipfs節(jié)點(diǎn)提供和REST API接口,可供我們在程序代碼中操作節(jié)點(diǎn)進(jìn)行文件的上傳等操作。不過大多數(shù)情況下,我們并不需要直接操作這個(gè)REST開發(fā)接口,而是使用經(jīng)過封裝的更友好的ipfs-api,一個(gè)nodejs包。

2.1安裝nodejs

到官網(wǎng)下載nodejs安裝包:32位,64位。下載后雙擊進(jìn)行安裝即可。

開一個(gè)控制臺(tái)窗口,測試:

C:\Users\hubwiz> node -v
V8.11.1

2.2安裝ipfs-api

Ipfs-api的安裝需要git命令行,因此我們先安裝git。從官網(wǎng)下載git安裝包:32位,64位。下載后雙擊安裝即可。

執(zhí)行g(shù)it命令測試:

D:\test-ipfs-api> git version
git version 2.16.2.windows.1

ipfs-api需要編譯原生node模塊,因此需要安裝VisualStudio 2015和python27。

官網(wǎng)下載VisualStudio 2015社區(qū)版,雙擊安裝即可。 官網(wǎng)下載Python27安裝包,雙擊安裝并設(shè)置PATH環(huán)境變量使python可用。

重新開一個(gè)控制臺(tái),使環(huán)境變量生效?,F(xiàn)在安裝ipfs-api:

D:\test-ipfs-api> npm install ipfs-api
+ ipfs-api@20.0.1
added 1 package, updated 1 package and moved 1 package in 22.138s

2.3測試代碼 – nodejs

在D:\test-ipfs-api目錄下創(chuàng)建一個(gè)測試腳本test.js:

const ipfsAPI = require('ipfs-api')
const ipfs = ipfsAPI('localhost', '5001', {protocol: 'http'})
const buffer = Buffer.from('this is a demo')
ipfs.add(buffer)
    .then( rsp => console.log(rsp[0].hash))
.catch(err => console.error(err))

執(zhí)行這個(gè)腳本:

D:\test-ipfs-api> node test.js
QmfQS4vm9YZTAyGZEkDqm81xripwsK3NgqfNkbCdoeEw5i

也就是說,我們將內(nèi)容this is a demo添加到本地倉庫后,得到哈希值 QmfQS4vm9YZTAyGZEkDqm81xripwsK3NgqfNkbCdoeEw5i。現(xiàn)在可以使用cat子命令來查看這個(gè)哈希值對應(yīng)的內(nèi)容:

D:\test-ipfs-api> ipfs cat QmfQS4vm9YZTAyGZEkDqm81xripwsK3NgqfNkbCdoeEw5i

控制臺(tái)會(huì)輸出我們之前上傳的內(nèi)容:

this is a demo

ipfs進(jìn)入監(jiān)聽狀態(tài)后,提供了一個(gè)http網(wǎng)關(guān),讓我們可以使用瀏覽器來訪問ipfs上的內(nèi)容。網(wǎng)關(guān)默認(rèn)在本機(jī)(127.0.0.1)的8080端口監(jiān)聽,因此使用你的瀏覽器訪問這個(gè)URL:

http://127.0.0.1:8080/ipfs/QmfQS4vm9YZTAyGZEkDqm81xripwsK3NgqfNkbCdoeEw5i

同樣可以看到我們之前上傳的內(nèi)容。 注意:需要首先啟動(dòng)監(jiān)聽器(ipfs daemon)并且你的瀏覽器和ipfs節(jié)點(diǎn)在同一臺(tái)計(jì)算機(jī)。 ?

三、在瀏覽器中訪問ipfs

ipfs-api也支持在browser使用。最簡單的方法是使用專門針對瀏覽器的封裝庫,在html中引用即可:

<script src="https://unpkg.com/ipfs-api/dist/index.js"></script>

這個(gè)特別封裝的庫會(huì)創(chuàng)建一個(gè)全局對象ipfsAPI,我們在瀏覽器腳本中可以直接使用,例如:

var ipfs = window.IpfsApi('localhost', '5001')

這種方法比較簡單,因此下文不再描述。接下來我們將使用更加工程化的方法, 采用webpack來直接在前端腳本中使用ipfs-api的nodejs包。

3.1 HTML頁面

在D:\test-ipfs-api目錄下創(chuàng)建index.html:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  <textarea id="content">THIS IS ANOTHER DEMO</textarea>
  <button id="upload">Upload</button>
  <script src="./bundle.js"></script>
</body>
</html>

我們的目標(biāo)是,當(dāng)點(diǎn)擊按鈕時(shí),我們將文本框的內(nèi)容上傳到ipfs

3.2前端腳本

在D:\test-ipfs-api目錄下編寫腳本app.js:

import ipfsAPI from 'ipfs-api'
const ipfs = ipfsAPI('localhost', '5001', {protocol: 'http'})

window.addEventListener('load', function() {
  let btn = document.querySelector('#upload')
let txt = document.querySelector('#content')
btn.addEventListener('click',()=>{
    let buffer = Buffer.from(txt.value, 'utf-8');
    ipfs.add(buffer)
      .then( rsp => console.log(rsp[0].hash))
.catch(err => console.error(err))
})  
})

3.3 webpack配置

在D:\test-ipfs-api目錄下編寫配置文件webpack.config.js:

const webpack = require('webpack');
const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
  entry: './app.js',
  output: {
    path: path.resolve(__dirname),
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: {
          presets: ['es2015'],
          plugins: ['transform-runtime']
        }
      }
    ]
  }
}

3.4前端腳本打包

執(zhí)行webpack打包:

D:\test-ipfs-api> webpack

3.5 配置ipfs的CORS策略

由于需要從網(wǎng)頁中訪問ipfs節(jié)點(diǎn),這就引入了跨域安全問題,因此我們需要配置ipfs節(jié)點(diǎn)使其允許跨域請求:

D:\>ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

3.6 配置ipfs的API監(jiān)聽地址

由于ipfs節(jié)點(diǎn)默認(rèn)在本機(jī)(127.0.0.1)的5001端口監(jiān)聽API請求,因此如果你的瀏覽器和ipfs節(jié)點(diǎn)不在同一臺(tái)機(jī)器上,需要讓ipfs節(jié)點(diǎn)監(jiān)聽公開地址:

D:\> ipfs config --json Addresses.API '"/ip4/0.0.0.0/tcp/5001"'

當(dāng)然,如果你的瀏覽器和ipfs節(jié)點(diǎn)在同一臺(tái)機(jī)器上,就不需要進(jìn)行這個(gè)配置了。

3.7配置ipfs的網(wǎng)關(guān)的監(jiān)聽地址

由于ipfs節(jié)點(diǎn)旳http網(wǎng)關(guān)默認(rèn)在本機(jī)(127.0.0.1)的8080端口監(jiān)聽http請求,因此如果你的瀏覽器和ipfs節(jié)點(diǎn)不在同一臺(tái)機(jī)器上,就需要讓ipfs網(wǎng)關(guān)監(jiān)聽公開地址:

D:\> ipfs config --json Addresses.Gateway '"/ip4/0.0.0.0/tcp/8080"'

3.8測試網(wǎng)頁

首先啟動(dòng)ipfs監(jiān)聽:

D:\>ipfs daemon

然后在測試目錄下啟動(dòng)web服務(wù)器,這里使用python內(nèi)置的簡單服務(wù)器,當(dāng)然你可以使用任何熟悉的web服務(wù)器:

D:\test-ipfs-api> python –m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

現(xiàn)在打開你的瀏覽器,訪問http://127.0.0.1:8000/,一切順利的話,你可以看到一個(gè)文本框和一個(gè)按鈕,點(diǎn)擊按鈕,即可將文本框的內(nèi)容上傳到ipfs節(jié)點(diǎn)。

以上就是關(guān)于“ipfs-api訪問IPFS的方法是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:ipfs-api訪問IPFS的方法是什么
文章網(wǎng)址:http://muchs.cn/article30/pipgso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、移動(dòng)網(wǎng)站建設(shè)、商城網(wǎng)站、搜索引擎優(yōu)化、做網(wǎng)站品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司