Arseed 上传图片 快速入门
快速入门
为了方便开发者入门,我们部署了 web3infra.dev 方便开发者永存数据。快速入门将介绍如何使用 arseeding-js 将数据存通过 web3infra.dev 存储到 Arweave 网络。
准备
为了快速完成数据上传,你需要提前准备:
- node.js 开发环境
- 拥有一个 MetaMask 钱包。
- 该钱包拥有在 everPay 上任意一种资产。
如果还没做好准备,请查看:everPay 充值指南
安装
请打开你的终端,使用以下指令安装 arseeding-js。
npm i arseeding-js
上传数据
安装完成后,在目录下创建 demo.js,将以下代码复制到 demos.js:
import { genNodeAPI } from 'arseeding-js'
const instance = await genNodeAPI('YOUR PRIVATE KEY')
const arseedUrl = 'https://arseed.web3infra.dev'
const data = Buffer.from('........')
const payCurrency = 'usdc' // everpay supported all tokens
const ops = {
tags: [{name: "Content-Type",value:'image/png'}]
}
const res = await instance.sendAndPay(arseedUrl, data, payCurrency, ops)
console.log('res',res)
配置说明:
- 将你的 MetaMask 密钥填充到
YOUR PRIVATE KEY。确保 PRV KEY 对应的钱包在 everPay 拥有资产。 - arseedUrl 是需要配置的 Arseeding 后端服务地址,这里我们使用 everFinance 提供的 Arseed 服务,URL 为:https://arseed.web3infra.dev 。
- data 里需要填充你想要上传的二进制数据,开发者可以采用 file io 从硬盘上读取对应的文件。
- payCurrency 是需要选择的支付代币,如果你的 MetaMask 地址在 everPay 持有的是 usdc,这里请填写 usdc,如果持有的是其他代币,请填写其他代币的 symbol。
- ops 里可以配置你的 Arweave Tags,什么是 Arweave Tags 参考:这里。
- tags 中的 Content-Type 需要基于你上传的内容进行配置,例如 上传的 png 格式的图片,则配置为
image/png,详细说明参考 Content-Type。
在准备好配置后,调用 await instance.sendAndPay(arseedUrl, data, payCurrency, ops) 就可以将你的数据上传到 web3infra 的 Arseeding 节点。
在终端执行以下命令进行文件上传:
node demo.js
正确执行后终端将返回:
res {
status: 'ok',
everpayTx: {
tokenSymbol: 'USDC',
action: 'transfer',
from: '0xDc19464589c1cfdD10AEdcC1d09336622b282652',
to: 'uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68',
amount: '685',
fee: '0',
feeRecipient: '0x6451eB7f668de69Fb4C943Db72bCF2A73DeeC6B1',
nonce: '1658805735973',
tokenID: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
chainType: 'ethereum',
chainID: '1',
data: '{"itemId":"iyosxBPXwPYXKYac31nEq3c5uDm4Wxsv0o-Yy8yaHvU","bundler":"uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68","currency":"USDC","decimals":6,"fee":"685","paymentExpiredTime":1658809335,"expectedBlock":982245}',
version: 'v1',
sig: '0x12e9342863734b0c3d0bf09cf191a38e0266692a3a0114723904f5e3d5205310706d1d6eaff86bda2f19d8ee46becc4c9512b419ecae36be844bd43da52a6fa41b'
},
everHash: '0x2cd991fb67206ccc93976a20a892833fecce9ae5261d4570d6b6bb3eac3783e7',
order: {
itemId: 'iyosxBPXwPYXKYac31nEq3c5uDm4Wxsv0o-Yy8yaHvU',
bundler: 'uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68',
currency: 'USDC',
decimals: 6,
fee: '685',
paymentExpiredTime: 1658809335,
expectedBlock: 982245
}
}
最终这些数据将打包到 Arweave 网络,永存并不可篡改。
下载数据
在返回的结果中可以找到 res.order.itemId ,上文中 itemId 为 iyosxBPXwPYXKYac31nEq3c5uDm4Wxsv0o-Yy8yaHvU 。
可以使用 curl 下载数据:
curl --location --request GET 'https://arseed.web3infra.dev/iyosxBPXwPYXKYac31nEq3c5uDm4Wxsv0o-Yy8yaHvU'
更深入的学习 Arseeding 和 web3infra 请查看:
Arseed 上传图片 快速入门的更多相关文章
- python 全栈开发,Day88(csrf_exempt,ES6 快速入门,Vue)
BBS项目内容回顾 1. 登陆页面 1. 验证码 1. PIL(Pillow) 2. io 2. ORM 1. 增删改查 3. AJAX $.ajax({ url: '', type: '', dat ...
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- 题解 [AHOI2009]同类分布
不理解之前为什么不会哈哈哈哈哈哈哈哈. 我是个天才(喜 显然记录 \(f_{i, t, r, s, limit, lead}\),\(i, limit, lead\) 是数位 dp 的套路,\(t\) ...
- OPTIRRA研究: TNF拮抗剂维持期优化减量方案[EULAR2015_SAT0150]
OPTIRRA研究: TNF拮抗剂维持期优化减量方案 SAT0150 OPTIMISING TREATMENT WITH TNF INHIBITORS IN RHEUMATOID ARTHRITI ...
- Chai3D之触觉设备
推荐:将 NSDT场景编辑器 加入你的3D开发工具链 介绍 触觉设备是一种双向仪表/致动的人机界面,由人类操作员用于与计算机模拟虚拟环境进行主动交互.触觉设备可以是鼠标.方向盘.指垫.机器人手柄. ...
- centos7中关闭防火墙命令
1.命令行界面输入命令"systemctl status firewalld.service"并按下回车键. 2.然后在下方可以查看得到"active(running)& ...
- echarts来显示世界地图和全国地图,并且可以下钻层级
echarts来显示世界地图和全国地图,并且可以下钻层级 使用echarts来显示世界地图和全国地图,并且可以下钻层级 使用的技术 现有的功能 遇到的问题解决 总结 参考内容 直接来源码,地球资源包我 ...
- DataTransfer.setDragImage()自定义拖拽图像遇到的坑
发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针.这个图片是自动创建的,你不需要自己去创建它.然而,如果想要设置为自定义图像,那么 DataTran ...
- WPF项目需要不断更新前台图片时,碰到“System.IO.IOException: 文件“xxx”正由另一进程使用“问题的解决
问题描述 项目中要求能不断拍照并更新显示图片,使用FileStream在本地创建了图片文件: 当下次重新拍照前删除之前拍过的图片时,提示"System.IO.IOException: 文件& ...
- 预处理指令详解(C语言
一.预处理符号 预处理符号是C语言内置的符号,是可以直接使用的. 其中,若遵顼ANSI C,则__STDC__ 为1,否则未定义. 二.#define 1)定义标识符 define可以用来定义标识符, ...
- vue项目引入外部UI,不同页面自定义不同样式
做项目有些需求是项目要改版,但是又想留一个老项目的入口,所以不同页面要用不同样式,对于引入外部UI来说是个麻烦事,因为要设置外部UI组件的样式必须是全局设置,也就是说<style>< ...
- Java面向对象之内部类
内部类 内部类:在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对于B类来说就是外部类了. 1.成员内部类 2.静态内部类 3.局部内部类 4.匿名内部 ...