如何发布文件
如何发布文件
本文将详细介绍如何发布文件,通过发布
功能,将已经开发完成的大屏
、看板
、门户
、PPT
(统称:文件) 发布到线上环境,并灵活设置访问权限,确保文件的安全性和可用性。
发布
通过分享链接,用户可直接访问相关内容,实现信息共享。
1. 鼠标悬停在文件上,选择 发布。
- 打开
发布分享
开关,点击确定,转发分享链接可以访问文件。

提示
打开发布分享开关后,系统将随机生成一个分享链接。每次重新打开分享开关时,链接都会更新,上一次的链接将自动失效。
访问限制
灵活设置访问限制。开启访问限制
,访问链接时需要进行相关验证;关闭访问限制
,分享链接无需验证可直接访问。
提示
打开访问限制
开关时,登录验证
,密码验证
,Token 验证
必须选择勾选一项。
登录验证
勾选登录验证
,按需选择可访问的用户或用户组。只有授权的用户才可访问分享链接。
未指定时,当前空间下所有用户都允许登录访问。
指定时,仅指定的用户或用户组中的用户允许登录访问。
打开发布分享
、 访问限制
开关,勾选登录验证
,按需选择访问用户。

密码验证
用户访问分享链接时,通过输入正确的密码访问文件。
打开发布分享
、 访问限制
开关,勾选密码验证
,在输入框中输入密码,点击确定。

提示
未勾选验证时效
选项,每次访问文件时都需要输入密码。
Token 验证
通过 Token 验证的方法将文件访问权限与其他系统进行集成。
Token 验证规则
① 打开
发布分享
开关,复制并记录文件的分享链接
地址,打开访问限制
开关,勾选Token
验证,记录Token
,以备后用。② 将
分享链接
地址与当前时间(毫秒)
连起来,并用|(竖线)
分隔开。③ 使用 Token 通过
HMAC-SHA256 base64
,对第 2 步得到的字符串进行加密。④ 将时间和加密后的签名分别命名为
time
,signature
,放置到分享链接
地址后面进行文件访问。⑤ 验证失败,拒绝访问。
提示
默认 time 值与服务器时间的误差不超过 ±2 分钟,超过该误差限制后,生成的文件访问地址将失效。误差值可通过 config/application-prod.yml 文件中的hetu.platform.release.max-time-difference
进行设置,单位为毫秒。

Token 验证操作的示例代码:
import java.security.*;
import java.util.Date;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import java.net.URLEncoder;
public class Test {
public static String getSignedUrl(String releaseCode, String token) {
Date date = new Date();
Long time = date.getTime();
String args = releaseCode + "|" + time;
String signature = hmacSHA256(args.getBytes(), token.getBytes());
//TODO 访问地址根据实际进行修改
String url = "https://hetu.taiji.com.cn/share/index.html#/"
+ releaseCode + "?time=" + time + "&signature=" + signature;
return url;
}
public static String hmacSHA256(byte[] data, byte[] key) {
try {
SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
return URLEncoder.encode(byte2Base64(mac.doFinal(data)));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static String byte2Base64(byte[] bytes) {
return Base64.encodeBase64String(bytes);
}
public static void main(String[] args) throws Exception {
String token = "OZPNpJCvuQYkhYZ%2fwx0iHw%3d%3d";
System.out.println(getSignedUrl("TJ22558219572b438586be4d0f6d640e", token));
}
}
Token 验证的分享链接结果示例:
https://hetu.taiji.com.cn/share/index.html#/TJ22558219572b438586be4d0f6d640e?time=1627791920059&signature=r4dBdgUswGOn2d2%2BJY5%2B7EoWYCQ9MNJjTLpGnndyEms%3D
验证参数校验规则
勾选Token 验证后,方可选择验证参数,验证参数可以对链接中的自定义参数进行验证。
保证文件的 URL 访问链接的参数不能被篡改,从而提高文件数据以及用户信息的安全性。
① 打开
发布分享
开关,复制并记录文件的分享链接
地址。② 将
分享链接
、参数
以及当前时间(毫秒)
连起来,并用|(竖线)
分隔开。③ 使用
Token
通过HMAC-SHA256 base64
,对第 2 步得到的字符串进行加密。④ 将时间和加密后的签名分别命名为
time
,signature
,参数
放置到分享地址后面进行文件访问。⑤ 如果签名参数验证失败,拒绝访问。
验证参数示例代码:
public static String getSignedUrl(String releaseCode,String token){ Date date=new Date(); Long time=date.getTime(); String params="userId=1234&b=1";// 请求参数 String args=releaseCode+"|"+time+"|"+params; String signature=hmacSHA256(args.getBytes(),token.getBytes()); //TODO 访问地址前缀根据实际进行修改 String url="https://hetu.taiji.com.cn/share/index.html#/" +releaseCode+"?time="+time+"&signature="+signature+"&"+params; return url; }
验证参数的分享链接结果示例:
https://hetu.taiji.com.cn/share/index.html#/TJ22558219572b438586be4d0f6d640e?time=1627791920059&signature=r4dBdgUswGOn2d2%2BJY5%2B7EoWYCQ9MNJjTLpGnndyEms%3D&userId=1234&b=1
节点编程生成分享链接(可选)
大屏文件也可以使用节点编程来生成 Token 验证的分享链接。
操作步骤如下:
进入大屏,点击节点编程。
拖入节点类型全局节点和转换器,将全局节点的
页面加载完成后
与转换器
进行连接。

点击转换器,在右侧编辑节点编程代码。
① Code: 分享链接的Code
② Token: 勾选Token验证后的Token
③ 请求参数: userID=1234 ;b=1。参数自定义。
④ 访问地址

提示
参数验证的前置条件必须开启 Token 验证。当密码验证
通过之后再进行Token 验证
。密码验证
和Token 验证
可同时使用。
验证时效
勾选验证时效:可以设置安全验证的有效期。
设置 0 天,每次访问需要进行安全验证。
设置(1,180)天,安全验证通过后,在设置时间内访问文件不需要验证,超过时间需要重新验证。
未勾选验证时效:每次访问需要进行安全验证。
时间规则: 例如:发布时间
2021-08-01
,验证时效设置为3天
,则验证的有效期限为:2021-08-01 00:00:00~2021-08-04 23:59:59
。如果开启
Token验证
,验证时效
为 Token 值的有效时间
。