当前位置: 首页 > news >正文

如何使用IPFS命令行/js代码上传文件

IPFS网关是什么

IPFS 网关的基础地址是指公共 IPFS 网关的根 URL,该 URL 用于通过 HTTP 访问 IPFS 存储的内容。公共 IPFS 网关是由社区提供的服务,任何人都可以通过这些网关访问 IPFS 上存储的内容。

常见的公共 IPFS 网关包括:

  • https://ipfs.io/ipfs/
  • https://gateway.pinata.cloud/ipfs/
  • https://dweb.link/ipfs/

这些网关允许用户通过浏览器或其他 HTTP 客户端直接访问 IPFS 上的文件。使用这些网关的基本形式是将文件的 IPFS 哈希添加到网关的根 URL 后,形成完整的文件地址。例如,如果文件的 IPFS 哈希是 QmXvgoHk4HHDsWPj3bXZvBmn4Q4xhGo2uJrpYJ6q2EkRJL,那么通过 https://ipfs.io/ipfs/ 可以访问到该文件的地址为 https://ipfs.io/ipfs/QmXvgoHk4HHDsWPj3bXZvBmn4Q4xhGo2uJrpYJ6q2EkRJL

使用IPFS命令行上传文件

IPFS(InterPlanetary File System)提供了命令行工具,允许用户在终端中执行各种 IPFS 操作。以下是一些常用的 IPFS 命令以及它们的简要说明:

  1. 安装IPFS 命令行工具
# 下载安装包
wget https://dist.ipfs.tech/kubo/v0.22.0/kubo_v0.22.0_linux-amd64.tar.gz# 解压文件
tar -xvzf kubo_v0.22.0_linux-amd64.tar.gz# 进入解压后的文件夹
cd kubo# 运行安装脚本
sudo bash install.sh
  1. 初始化 IPFS:

    ipfs init
    

    该命令用于初始化本地 IPFS 存储库。它将在你的主目录下创建 .ipfs 目录,并生成配置文件。

  2. 启动 IPFS 节点:

    ipfs daemon
    #低功耗运行指令
    ipfs init --profile=lowpower 
    

    该命令用于启动 IPFS 节点。一旦节点启动,你可以通过浏览器或其他 IPFS 客户端访问 IPFS 网络。

  3. 添加文件到 IPFS:

    ipfs add filename.txt
    

    该命令用于将文件添加到 IPFS。它将返回一个唯一的哈希值,表示刚刚添加的文件。

  4. 通过哈希获取文件:

    ipfs cat QmXvgoHk4HHDsWPj3bXZvBmn4Q4xhGo2uJrpYJ6q2EkRJL
    

    该命令用于通过文件的哈希值从 IPFS 获取文件内容。

  5. 查看 IPFS 节点信息:

    ipfs id
    

    该命令用于查看当前 IPFS 节点的信息,包括节点 ID 和网络连接。

  6. 在浏览器中查看 IPFS 文件:
    如果你使用默认的 IPFS 网关(https://ipfs.io/),你可以在浏览器中访问文件:

    https://ipfs.io/ipfs/QmXvgoHk4HHDsWPj3bXZvBmn4Q4xhGo2uJrpYJ6q2EkRJL
    

这只是 IPFS 命令行工具的一小部分功能。你可以使用 ipfs --help 命令来查看所有可用命令和选项的列表。此外,IPFS 还提供了一组强大的 HTTP API,可以通过编程方式与 IPFS 进行交互。

注意:在使用 IPFS 之前,请确保你已经安装了 IPFS 命令行工具。你可以从 IPFS 官方网站(https://ipfs.io/)下载并按照安装说明进行安装。

使用js代码上传文件到IPFS

IPFS 框架的编程接口: 如果你使用编程语言如 JavaScript,你可以使用 IPFS 框架(例如 js-ipfs)提供的 API 来上传文件。以下是一个简单的示例:

const IPFS = require('ipfs-core');async function uploadFile() {const ipfs = await IPFS.create();const file = { path: 'yourfile.txt', content: Buffer.from('Hello IPFS') };const results = await ipfs.add(file);console.log('File uploaded. IPFS hash:', results.cid.toString());
}uploadFile();

这将输出上传文件的 IPFS 哈希。

记住,IPFS 是一个去中心化的系统,上传的文件会在网络中分布,因此其他人也可以通过相同的 IPFS 哈希访问到你上传的文件。如果你希望确保文件的长期可用性,你可能需要考虑使用 IPFS Pinning 服务,将文件保留在网络中。

IPFS配置

第一段代码设置编辑器为vim
第二段代码打开ipfs配置文件

export EDITOR=/usr/bin/vim
ipfs config edit

附录

IPFS常见问题1:

使用本地节点上传文件后,IPFS链接无法在浏览器打开,出现504 gateway timeout
原因是地址需要使用网关解析,而网关目前还没有解析到当前文件的地址,所以无法查询到文件;

解决方法:

方法1:修改网关IP

默认情况下,网关为/ip4/127.0.0.1/tcp/8082,只能在本地访问。要将其公开给网络中的其他计算机,要使用0.0.0.0作为IP地址。

即将本地ip
在这里插入图片描述
修改为
在这里插入图片描述
实测重启服务后,大约半小时可以从公共网关ipfs.io打开本地上传的文件
https://www.cnblogs.com/HandyLi/p/11864515.html

方法2:使用本地网关,举例

文件地址为

https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR

修改为

http://127.0.0.1:8080/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR

从而在本地ipfs节点打开文件,提高速度。

方法3:使用ipfs-companion,这是一个浏览器插件,在检测到文件链接可用时,会自动把地址从远程网关换成本地网关访问文件。

此问题的参考链接:https://stackoverflow.com/questions/74158980/why-is-it-so-hard-for-web-browsers-to-open-ipfs-links/75063740#75063740

ipfs-companion:
https://www.5axxw.com/wiki/content/1il7zw

http://www.xdnf.cn/news/824221.html

相关文章:

  • 深入理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞
  • Js日期函数-Date方法
  • 颜表情记录(自用
  • extjs Ext.data.Store store学习
  • 什么是802.11ac和802.11ac Wave2
  • 【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)
  • think PHP之环境配置windows+Wamp+Composer+PHP
  • 2024年网络安全最全网工必备工具SecureCRT_crt工具(1),瞬间高大上了
  • 数据流图(DFD)
  • 数据归档与清理功能大幅升级,NineData重磅升级!
  • CSS中实现元素居中的七种方法
  • iOS 苹果授权登录(Sign in with Apple)系列之Apple Developer配置篇
  • 放弃Python拥抱Mojo?鹅厂工程师真实使用感受
  • 推荐几个好用实用的免费图标素材(好看的icon)
  • 开窗函数(分析函数)使用详解
  • 最新配置淘宝镜像的方法
  • Ubuntu安装和配置ssh教程
  • document.getElementById()方法使用
  • equalsIgnoreCase() 方法
  • 【软件开发流程】
  • OSPF协议详解
  • B/S结构和C/S结构详细介绍
  • HDU之算法初步
  • disruptor原理详解
  • 网安学途—SQL SERVER 2008安装教程
  • Apache Log4j2 详解 (一)
  • C语言——动态内存函数(malloc、calloc、realloc、free)
  • 【揭秘】ScheduledExecutorService全面解析
  • postfix(邮件服务器)说明与postconfig命令详解
  • 2025年5月TIOBE 指数头条:Python 统治世界!多家权威机构____编程语言排行榜__薪酬状况