
# 发布大屏
大屏开发完成后，您可以通过发布功能向其他用户分享大屏。
#### 发布大屏
1. 登录DLV控制台。
2. 在"我的大屏"页面，找到需要发布的大屏，将鼠标移至该大屏图标之上，界面上将显示大屏的管理按钮，单击发布按钮![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0220785786.png)。
   
   图1发布大屏   
   ![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0000001084940695.png "点击放大")
   您也可以在大屏开发页面右上方，单击发布按钮![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0220739219.png)发布大屏。
   图2大屏发布   
   ![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0000001084951179.png "点击放大")
   
   
3. 在弹出的"发布"页面，配置发布参数。 
   图3配置发布参数   
   ![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0000001085344445.png "点击放大")
   **发布状态**
   开启发布按钮（如[图3]所示），让其他用户也能访问该大屏。当大屏开启发布状态后，其他用户想要访问大屏时，不需要登录到DLV系统中，只要打开浏览器并在地址栏中输入"分享"参数中的链接就可以访问大屏了。
   **版本管理**
   设置用户通过分享链接访问大屏时，允许查看的大屏版本。
   - 实时更新发布：当大屏内容有修改时，用户可以即时查看到最新的大屏内容。系统默认选项，不支持删除。
   
   - 历史快照：将当前的大屏内容作为一个版本进行存档，存档后大屏内容的修改不会同步到该历史快照中。当某一个历史快照设置为"分享中"时，用户可以查看该版本的大屏内容。
   
   
   **分享密钥**
   设置大屏的分享方式。
   - 公开分享：不设置密码访问和Token验证时，即为公开分享，用户通过分享链接直接访问大屏。DLV基础版只支持公开分享方式，不支持其他分享方式。
   
   - 密码访问：在"设置访问密码"选项卡开启密码访问，开启后按钮显示为![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0258217642.png)，然后在输入框中设置发布密码。设置密码成功后，用户在浏览器中通过分享链接访问大屏时，需要输入该密码才能访问。
     您也可以开启"验证有效期"，开启后，当用户登录验证成功后，在所设置的有效期内访问大屏无需再次验证，超过时间需要重新验证。关闭后，每次访问都需要通过验证。
     图4输入发布密码   
     ![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0000001085909937.png "点击放大") 
   
   - Token访问：在"设置Token验证"选项卡开启Token验证访问。 系统会随机生成验证码，您需要记录下这个Token。您也可以开启"验证有效期"，开启后，使用该Token访问大屏验证成功后，在所设置的有效期内无需再次验证，超过时间需要重新验证。关闭后，每次访问都需要通过验证。
     图5设置Token验证   
     ![](https://support.huaweicloud.com/usermanual-dlv/zh-cn_image_0000001085813261.png "点击放大")
     在这个时候，如果您尝试直接打开您所分享的页面，您会收到一个**认证失败**提示。表示您的访问被拒绝了。
     如果您想要打开您所分享的页面，需要完成如下几个步骤：
     ![](https://support.huaweicloud.com/usermanual-dlv/public_sys-resources/note_3.0-zh-cn.png)
     为了防止重放攻击，请确保您的服务器时间为东8区标准时间，DLV只会提供1分钟的误差，如果时间误差超过1分钟将会验证失败。
     1. 发布大屏，记录分享的大屏编码（分享链接中share后面的一串字符串）。
     
     2. 将大屏编码和当前时间（毫秒）连起来，并用 \|（竖线）分隔开。
     
     3. 使用 token 通过 HMAC-SHA256 base64 对[3.b]中的字符串进行加密。
     
     4. 将时间和加密后的签名分别命名为dlv_time，dlv_signature。
     
     5. 将它们依次放入分享链接的querystring中。
     
     
     示例如下：
     Java:
     ```
     package com.test;
      import java.security.*;
      import javax.crypto.*;
      import javax.crypto.spec.SecretKeySpec;
      import org.apache.commons.codec.binary.Base64;
      import java.net.URLEncoder;
      public class ShareWithTokenTest {
          public static void main(String[] args) throws Exception {
              System.out.println(getShareUrlWithToken("********722467a9477b5b*******", "*******r1tyy1C7Jenni3p*********"));
          }
          public static String getShareUrlWithToken(String shareID, String token){
              long time = System.currentTimeMillis();
              String data = shareID + "|" + time;
              String signature = HMACSHA256(data.getBytes(), token.getBytes());
              String url = "https://console.huaweicloud.com/dlv/vision/share/?id="+shareID +"&dlv_time="+time+"&dlv_signature="+ signature+"&locale=zh-cn&region=cn-north-4";
              return url;
          }
          //采用HmacSHA256进行签名
          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(Base64.encodeBase64String(mac.doFinal(data)));
              } catch (NoSuchAlgorithmException e) {
                  e.printStackTrace();
              } catch (InvalidKeyException e) {
                  e.printStackTrace();
              }
              return null;
          }
      }
     ```
     
   
   
   ![](https://support.huaweicloud.com/usermanual-dlv/public_sys-resources/note_3.0-zh-cn.png)
   ```
   上述代码中的以下参数，请根据实际情况进行替换：
   System.out.println(getShareUrlWithToken("*****3b44722********5b888211bca", "******er1tyy1C7J*******JxeIlPz8P")中的*******4722467a9477*******11bca为分享链接中share后的参数，*****er1tyy1C7******pzJxe***8P为分享密钥中的参数。
   String url = "https://console.huaweicloud.com/dlv/vision/share/?id="+shareID +"&dlv_time="+time+"&dlv_signature="+ signature+"&locale=zh-cn&region=cn-north-4"中的locale=zh-cn为语言标识，英文为en-us；region=cn-north-4为服务所在区域，cn-north-4为华北-北京四，您也可以在华北-北京一和华南-广州区域中分享大屏。
   ```
   
   
 
