IPFS图床


把这个文件下载后传自己网站

ipfs.7z

把 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

  1. infura 提供 api 的 https://ipfs.infura.io:5001 域名也是被污染了的

    可以反代 https://ipfs.infura.io:5001

    cf workers 反代会打不开,被屏蔽了

    可以利用 https://glitch.com/ 进行反代

    https://glitch.com/edit/#!/ipfsapi

  2. 另一种方法是自己搭建节点,官方提供各种语言的代码 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

声明:Blog on RackNerd|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - IPFS图床


本博客托管在 RackNerd 的 VPS 上