把这个文件下载后传自己网站
把 file.js 里面的 ipfsapi 和网关修改成自己的
ipfs-api:ipfsapi.glitch.me
网关:cf-ipfs.com
ipfs-api 可以反代 ipfs.infura.io:5001 或者下载ipfs客户端开启自己的节点
网关把自己域名解析到 209.94.90.1 或者使用 cf-ipfs.com
没有服务器可以直接将文件夹上传到ipfs,需要用客户端
一、创建ipfs API
API 用于上传文件返回文件的 hash 即 cid
infura 提供 api 的 https://ipfs.infura.io:5001 域名也是被污染了的
可以反代 https://ipfs.infura.io:5001
cf workers 反代会打不开,被屏蔽了
可以利用 https://glitch.com/ 进行反代
https://glitch.com/edit/#!/ipfsapi
另一种方法是自己搭建节点,官方提供各种语言的代码 https://github.com/ipfs/ipfs
其中go语言的简单好用,各平台客户端都用,下载直接运行
(https://github.com/ipfs/go-ipfs/releases)
安装后运行ipfs daemon开启节点
其中5001端口是API,8080端口是网关
http api相关文档(https://docs.ipfs.io/reference/http/api/)
适合单文件,如果想用来传文件夹好像会相当复杂
其中图床要用到的上传API是http://127.0.0.1:5001/api/v0/add
反代源码:
app.js
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
//const proxy = require('http-proxy-middleware');
const app = express();
app.set('port', '3000');
app.all('*', function (req, res, next) { // 解決跨域問題
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
if (req.method == "OPTIONS") {
res.send(200);
} else {
next();
}
});
const options = {
target: 'https://ipfs.infura.io:5001/',
changeOrigin: true,
};
const exampleProxy = createProxyMiddleware(options);
app.use('/', exampleProxy);
app.listen(app.get('port'), () => {
console.log(`server running @${app.get('port')}`);
});
package.json
{
"name": "js",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"express": "^4.17.1",
"http-proxy-middleware": "^2.0.0"
}
}
二、创建网关
虽然官方的 ipfs.io 和cf的 cloudflare-ipfs.com 都被污染了
可以用自己域名直接 A 记录 ipfs.io 的 ip 209.94.90.1 即可
或者在 cf cname 过去,同时要开 cdn 加速
cf-ipfs.com 还未被污染,可以用这个
----本教程转自 Hostloc 论坛:hjvn2211445
Comments | NOTHING
该文章已经关闭评论