签名文件相关
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 嵌入图片签名文件
在文章中,现在会有两种类型的图片:
- 外链图片
- 签名图片
外链图片
无需特别处理,直接显示。格式为:
签名图片
格式为:
。
其中,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