PRESS.one 开发者社区

PRESS.one 开发者社区

  • 文档
  • 博客
  • 开发者论坛

›Node.js SDK 文档

指南

  • 简介
  • DApp 开发流程
  • 创建 DApp
  • 数字签名相关知识
  • PRS 协议

REST API 文档

  • 概述
  • API 鉴权
  • 用户授权
  • 获取数字签名
  • 签名文件相关
  • 合约相关
  • 钱包相关

Node.js SDK 文档

  • SDK 安装
  • 用户授权
  • 签名文件相关
  • 合约相关
  • 钱包相关

签名文件相关

  • File#signByStream
  • File#getByRId
  • File#getByMsghash

signByStream

使用授权过的 privateKey 或者 token 来签名发布文件,该接口依据 PRS 协议规范,对文件进行数字签名,并且提交至 PRS 链上。

目前支持 markdown 以及图片文件的签名。用户直接调用接口即可签名并发布文件。

更多协议内容,请参考PRS 协议。

signByStream(data, meta)
  • data: 文件信息
  • meta: 需要保存的附加信息,DApp 可根据自身需求添加对应数据。
interface data{
  stream: ReadableStream;
  filename: string;
  source: string; 
  originUrl: string;
  category: string;
}
  • stream: 文件流
  • filename: 文件名称
  • source: 文件来源
  • originUrl: 文件源文件地址
  • category: 类别
  const client = new PRS({ env: 'env', debug: true, address: authAddress, token: token });
  // 获取需要签名的文件,签名文件不可重复。
  const markdownFileUrl = path.join(__dirname, './assets/test.md');
  const stream = fs.createReadStream(markdownFileUrl);
  let data = { stream: stream, filename: 'text.md', title: 'xxx' };
  let meta = { uuid: 'xxxx' };
  // 签名文件
  const res = await client.file.signByStream(data, meta);
  const fileHash = res.body.cache.msghash;
  const fileRId = res.body.cache.rId;

getByRId

通过 rId 即可获取文件的区块缓存信息。

fileByRId(rId)
  • rId: 签名文件的 rId。

Example

const fileRes = await client.file.getByRId(fileRId);

getByMsghash

通过 msghash 即可获取文件的区块缓存信息。

fileByMsghash(msghash)
  • msghash: 签名文件的 msghash。

Example

const fileRes = await client.file.getByMsghash(fileHash);

Markdown 嵌入图片签名文件

在文章中,现在会有两种类型的图片:

  1. 外链图片
  2. 签名图片

外链图片

无需特别处理,直接显示。格式为:![引用图片](https://www.2cto.com/uploadfile/Collfiles/20161223/20161223101638336.jpg)

签名图片

格式为:![test](prs://file?rId=338ef6d80d39ba3f24f944e38ee8826168640a4cf01ad6976ed7fe23fd518072)。 其中,prs://file?rId=xxx 是我们图片的协议。rId 表示这个图片在链上对应的 id。这个协议是通用的,可以用来表示任何格式的数字内容,将来还可以表示音频、视频等等。 前端在展示图文混排文档时,需要从文档中获取所有的协议,并且提取出 rId,然后根据 rId 获取图片的原链接,最终把协议替换成原链接。

缩略图服务

PRS 为签名过的图片提供缩略图服务。

Endpoint

https://dev.press.one/thumbnail?width=${width}&url=${url}

参数说明

  • width / height :图片要缩放到的宽度 / 高度,任选其一,1-1500 的整数,请注意 2x 及 3x 屏幕显示下应乘以相应倍数;
  • url :图片链接,当前只会信任 static.press.one 与 storage.googleapis.com/pressone 域;
  • quality :JPEG 格式图片质量,1-100 的整数,越大则图片质量越高,默认为 80;
  • compression :PNG 压缩级别,1-10 的整数,越大则压缩率越高,默认为 6;
  • force :当指定尺寸超过原始尺寸时,添加该参数会返回指定尺寸图片,否则会返回原始尺寸图片;

Example

https://dev.press.one/thumbnail?url=https://static.press.one/9e/ef/9eef3cd927eaaab871963d4658a49d89.png&width=100

← 用户授权合约相关 →
  • signByStream
  • getByRId
  • getByMsghash
  • Markdown 嵌入图片签名文件
  • 缩略图服务
文档
介绍基础知识创建 DApp创建合约
社区
TwitterMedium微信公众号开发者论坛
更多
官方博客GitHub
Copyright © 2023 PRESSone