全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 18498|回复: 75

人手一个ipfs图床,文件床

  [复制链接]
发表于 2021-6-17 23:28:24 | 显示全部楼层 |阅读模式
本帖最后由 hjvn2211445 于 2021-7-19 17:04 编辑

简单研究了一下ipfs上传文件返回链接,主要用到两个东西API和网关

弄了个图床https://ipfs.xkx.me/
传mp4。avi啥的也可以吧

静态代码放在ipfs上,实际文件地址 https://ipfs-1.xkx.me/ipfs/QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV/
上传API反代的infura

想自己建同款的源码自己F12一下,就3个文件,
修改static/file.js里面的api地址和网关ipfs-1.xkx.me网关地址(我的会停),下面有说怎么建这两个

https://github.com/jialezi/img2ipfs




记录下心得

一是ipfs API,用于上传文件返回文件的hash即cid,

二是网关





网关好整,虽然官方的ipfs.io和cf的cloudflare-ipfs.com都被污染了。可以用自己域名直接A记录ipfs.io的ip 209.94.90.1即可。或者在cf cname过去,同时要开cdn加速。

IPFS API
infura提供api的https://ipfs.infura.io:5001域名也是被污染了的,可以反代https://ipfs.infura.io:5001
试了cf workers反代会打不开,好像屏蔽了
vercel反代好像文件大于10M就502
vercel反代可以99m,好像是因为ipfs.infura.io:5001好像超过100m传不上去,提示Payload Too Large
自己节点的没问题


另一种方法是自己搭建节点,官方提供各种语言的代码https://github.com/ipfs/ipfs
其中go语言的简单好用,各平台客户端都用,下载直接运行 (https://github.com/ipfs/go-ipfs/releases)

安装后运行ipfs daemon开启节点
其中5001端口是API,8080端口是网关


节点面板可以看到当前节点下的文件,连接的其他节点等等。
网络一直在跑,还耗内存



命令行可以上传本地文件很方便,还可以文件夹(https://github.com/ipfs/go-ipfs#usage)
  1. ipfs add -r /folder
复制代码

http api相关文档(https://docs.ipfs.io/reference/http/api/)
适合单文件,如果想用来传文件夹好像会相当复杂
其中图床要用到的上传API是http://127.0.0.1:5001/api/v0/add

  1. curl -X POST -F file=@myfile "http://127.0.0.1:5001/api/v0/add"
复制代码





可以将静态项目部署在ipfs上

例如我的图床,源码在ipfs文件夹
  1. /export # tree ipfs
  2. ipfs
  3. ├── index.html
  4. ├── ipfs.zip
  5. └── static
  6.     ├── file.js
  7.     └── style.css

  8. 1 directory, 4 files
复制代码

上传到 ipfs,之后好像节点要开一下才能分发出去,之后我就关了节点了

  1. /export # ipfs add -r ipfs
  2. added QmSYL1xCB1jGWRbpdxRHNgbKvH3RfdqqBQuHZ1qMrHdW78 ipfs/index.html
  3. added QmeXHY5U75UC424Rz3NnAFF8tHcGYSdy2xhPAezZf6MRby ipfs/ipfs.zip
  4. added QmbKxqUkEq83RWLSJJUK8edZAexYtcNkgTgrnw15E7dcQg ipfs/static/file.js
  5. added QmcQL4DtC9gMHjmTHpv4VXvD58KKmM2kyJdL5jTa2i7vT8 ipfs/static/style.css
  6. added QmeakcL1JgEHn62LXannSW6U5z6kcVfifsdpXC8HpDCRMq ipfs/static
  7. added QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV ipfs
  8. 36.96 KiB / 36.96 KiB [====================================================================================================================================] 100.00%
  9. /export # ipfs pin add -r /ipfs/QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV
  10. pinned QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV recursively
复制代码


在cf解析设置
ipfs.xkx.me cname指向ipfs.io,要开cdn加速(不开加速就A指向209.94.90.1)
ipfs-1.xkx.me cname指向ipfs.io,要开cdn加速,做网关用
_dnslink.ipfs-1.xkx.me TXT记录 "dnslink=/ipfs/QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV"

这时访问 ipfs.xkx.me 就等于 ipfs-1.xkx.me/ipfs/QmPZtBHJTPojXDpNnvjFBz1Y4noAFKUHDw2BdEyNa6YNcV





.还阔以,还是票的unicloud的阿里oss速度快
upup.xkx.me
 楼主| 发表于 2021-7-16 13:51:57 | 显示全部楼层
本帖最后由 hjvn2211445 于 2021-8-1 18:25 编辑

https://github.com/jialezi/img2ipfs

不要用我的ipfs-1.xkx.me网关,我套的cf被制裁了,原因是视频流量
收集的网关

cf-ipfs.com
183.252.17.149:82
ipfs.genenetwork.org
ipfs.fleek.co
ipfs.azurewebsites.net
ipfs.kaleido.art
ipfs.globalupload.io
ipfs.slang.cx
ipfs.adatools.io
gateway.originprotocol.com
ipfs.best-practice.se
ipfs.drink.cafe
ipfs.denarius.io        
crustwebsites.net
bin.d0x.to
ravencoinipfs-gateway.com
ipfs.smartholdem.io
infura-ipfs.io
发表于 2021-7-21 23:42:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-6-18 12:16:44 | 显示全部楼层
infura可以有公共上传api,可以不用服务器也能愉快使用ipfs
 楼主| 发表于 2021-6-19 15:07:40 | 显示全部楼层
gdtv 发表于 2021-6-19 14:01
vercel每月限100g流量,所以如果用vercel反代,这个图床网站每月最多可以上传100g的图片?
...

应该是的
发表于 2021-6-18 13:38:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-6-18 00:10:28 | 显示全部楼层
我试一下

发表于 2021-6-17 23:50:33 | 显示全部楼层
表示没看懂怎么搭
发表于 2021-6-17 23:32:53 | 显示全部楼层
Cloudflare 还有个 cf-ipfs.com 没被污染
发表于 2021-6-17 23:33:38 | 显示全部楼层
速度不错啊。

https://ipfs-1.xkx.me/ipfs/QmNiMRzULELxowSDmAunyRmzBenq5Va5YotSm1WkvyBX2n
发表于 2021-6-17 23:36:20 | 显示全部楼层
终于等到大佬公布教程
发表于 2021-6-18 00:12:00 | 显示全部楼层
https://cf-ipfs.com/ipfs/QmVD2WbVFKdPXCAwR5sLf7N4HH3sanLgL4uiU745p69SfP
ipfs: video streaming is not allowed
 楼主| 发表于 2021-6-18 00:15:16 | 显示全部楼层
kylehao 发表于 2021-6-17 23:50
表示没看懂怎么搭

把这个三个文件下来传自己网站
https://ipfs.xkx.me/index.html
https://ipfs.xkx.me/static/file.js
https://ipfs.xkx.me/static/style.css

把file.js里面的ipfsapi和网关修改成自己的
ipfs-api:ipfsapi.glitch.me
网关:cf-ipfs.com

ipfs-api可以反代ipfs.infura.io:5001或者下载ipfs客户端开启自己的节点
网关把自己域名解析到209.94.90.1就行

没有服务器可以直接将文件夹上传到ipfs,需要用客户端
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 13:51 , Processed in 0.070423 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表