博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
智能媒体管理产品文档转换/预览功能介绍(4)--快速搭建
阅读量:7220 次
发布时间:2019-06-29

本文共 4755 字,大约阅读时间需要 15 分钟。

摘要:
智能媒体管理提供了 Cloud Native 架构的文档转换/预览服务,本文介绍快速搭建的示例,让您用 DIY 的体验方式实现文档预览功能。

一、导语

提供了 Cloud Native 架构的文档转换/预览服务,本文介绍快速搭建的示例,让您用 DIY 的体验方式实现文档预览功能。

二、环境准备

2.1 准备 RAM 子账号

为了实现安全的文档转换/预览功能,本文使用 RAM 子账号来管理资源并进行代码开发。

2.1.1 创建 test 子账号

登陆 页面,点击“用户管理”,选择“新建用户”,创建子账号 test ,创建成功如下图所示:

2.1.2 子账号授权

在创建子账号成功后的界面,选择 test 子账号,点击“授权”,确保给该子账号授予如下策略:

  • AliyunOSSFullAccess。具有完整访问 OSS 的权限,让文档转换能够在 OSS 存储转换数据。本文为了快速搭建而选择此权限,如果需要更精细的权限控制,可以参考 。
  • AliyunSTSAssumeRoleAccess。具有申请 STS Token的权限,预览时为客户端提供 STS Token,从而保证前端访问 OSS 的安全性。
  • AliyunIMMFullAccess。具有执行 IMM 服务的权限,具有了该权限就可以调用文档转换接口。

2.1.3 生成子账号的AK(Access Key)

代码开发时,需要使用AK(Access Key)。在 创建子账号成功后的界面,选择 test 子账号,点击“管理”,进入 test 子账号后再点击“创建 AccessKey”,保存好 AccessKey ID 和 Secret,它们将用于代码开发。

注意:目前每个子账号最多使用2个 AK,可以通过删除旧的 AK 来解决。

如上图中,得到 AK ID 类似 LTAIxxxxxxxxxxx,对应的 AK Secret 类似 W1yyyyyyyyyyyyyyyyyyyy

注意:这里提供的值只是示例,不能直接使用,具体的值请您在控制台获取并保存。

2.2 准备 OSS 服务

文档转换/预览是基于 OSS 实现,需要 OSS 的存储空间支持,本文通过 来实现,如下图所示。

在 华东2(上海区域)创建了 yourid-dev-imm 桶。

注意:该桶名只是示例,不能直接使用,需要替换为您的桶名。

2.3 准备 IMM 服务

转换/预览使用 IMM 服务,先 产品,然后 ,如下图所示,在 华东2(上海区域)创建了 imm 项目。

注意:一定需保证创建 IMM 项目 时指定的 Region 要和您创建 OSS 桶 指定的区域相同,才能够正常工作,目的是避免转换时带来跨 OSS Region 访问的流量费用。

2.4 准备开发环境

本文基于 “IntelliJ IDEA + Maven” 准备 Java 开发环境,参考 IMM 服务的 文档。

注意:在 pom.xml 文件中添加 aliyun-java-sdk-corealiyun-java-sdk-imm 的版本依赖。

com.aliyun
aliyun-java-sdk-core
true
3.5.1
com.aliyun
aliyun-java-sdk-imm
true
1.2.1
复制代码

三、开发部署

3.1 转换代码

环境准备好后,可以参考如下 Java 代码实现文档转换,技术细节请参考 。

import com.aliyuncs.imm.main.IMMClient;import com.aliyuncs.imm.model.v20170906.*;import com.aliyuncs.exceptions.*;public class TestImmOffice {    public static void main(String[] args) {        String accessKeyId = "LTAIxxxxxxxxxxx";  //RAM 中 test 子账号的 AK ID        String accessKeySecret = "W1yyyyyyyyyyyyyyyyyyyy"; //RAM 中 test 子账号的 AK Secret        IMMClient client = new IMMClient("cn-shanghai", accessKeyId, accessKeySecret);        ConvertOfficeFormatResponse resp = new ConvertOfficeFormatResponse();        ConvertOfficeFormatRequest req = new ConvertOfficeFormatRequest();        req.setProject("IMM");   //在 IMM 中创建的项目        req.setSrcUri("oss://yourid-dev-imm/test-data/office/paxos.pptx");   //OSS 源文件路径        req.setTgtUri("oss://yourid-dev-imm/test-data/office/paxos.pptx/output");  //OSS 转换文件路径        req.setTgtType("vector");        try {            resp = client.getResponse(req);            System.out.printf("requestId=%s, taskId=%s, tgtloc=%s", resp                    .getRequestId(), resp.getTaskId(),resp.getTgtLoc());        }catch (ClientException e){            System.out.println("error");        }    }}复制代码

转换成功后,您将在 OSS 的 yourid-dev-imm 桶(华东2---上海区域),对应 test-data/office/paxos.pptx/output/doc 目录下(注意:转换引擎增加了 doc后缀),得到 meta.json , fp*.json, 以及 I 目录下的文件。

3.2 预览部署

转换成功后,可以基于部署的前端预览引擎实现预览功能,技术介绍请参考 。如下图所示,在 yourid-dev-imm 桶(华东2---上海区域)中添加了preview目录,它包含了预览引擎的文件。

3.3 前端访问

部署预览引擎后,前端就可以通过访问预览引擎所在 OSS 桶的域名,实现预览功能。基于上述章节介绍,可以通过 https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/preview/index.html 路径访问渲染引擎。

注意:实际使用时请把 yourid-dev-imm 更换为您的桶。

3.3.1 OSS 公共读权限预览

为了快速体验预览引擎的效果,我们简化 OSS 的权限配置为公共读,如下图所示。

此时,可以通过如下地址格式完成文档预览。

https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/preview/index.html?url=https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/test-data/office/paxos.pptx/output&region=oss-cn-shanghai&bucket=yourid-dev-imm复制代码

其中 ? 前面部分为访问渲染引擎的路径,而 url=xxx 为转换文档的目标地址(注意:在 output后无需加上 /,渲染引擎会自动处理), region=oss-cn-shanghai 表示 OSS 桶所在区域,bucket=yourid-dev-imm 为桶名。

注意:实际使用时,需要把 yourid-dev-imm 更换为自己的桶。

3.3.2 OSS 私有权限预览(高安全)

设置桶为私有,但让渲染引擎 preview目录下的文件为公共读,然后为转换文件申请STS Token

policy = {    "Version": "1",    "Statement": [      {        "Effect": "Allow",        "Action": [          "oss:*"        ],        "Resource": [          "acs:oss:*:" + accountId + ":" + bucket + "/" + prefix + "/*"        ]      },      {        "Effect": "Allow",        "Action": [          "oss:ListObjects"        ],        "Resource": [          "acs:oss:*:" + accountId + ":" + bucket        ],        "Condition": {          "StringLike": {            "oss:Prefix": prefix + "/*"          }        }      }    ]  }复制代码

此时把 accountId 设置为 * ,表示任意用户;bucket 设置为 yourid-dev-imm ,表示您自己创建的桶;prefix 设置为本文中的路径 test-data/office/paxos.pptx/output。然后,调用 STS 的 得到 AccessKeyId,AccessKeySecret,SecurityToken三元组,然后用如下方式组合,即可实现安全的预览访问。

https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/preview/index.html?url=https://yourid-dev-imm.oss-cn-shanghai.aliyuncs.com/test-data/office/paxos.pptx/output&accessKeyId=STS.AAAAAAAAAA&accessKeySecret=BBBBBBBBBBB&stsToken=CCCCCCCCCCCCC&region=oss-cn-shanghai&bucket=yourid-dev-imm&...复制代码

四、参考文档

参考如下的文章,帮助您掌握相关背景:

转载地址:http://nnhym.baihongyu.com/

你可能感兴趣的文章
[游戏学习27] MFC 匀速运动
查看>>
抓包工具 - Fiddler(详细介绍)
查看>>
安卓机在按HOME键时,UNITY触发的APPLICATION_PAUSE事件
查看>>
人人都是 DBA(IV)SQL Server 内存管理
查看>>
离散数学拾趣(二):逻辑难题
查看>>
Efficient C#:为什么要把泛型作为返回值
查看>>
清华大学刘知远:在深度学习时代用HowNet搞事情
查看>>
[LeetCode] Different Ways to Add Parentheses 添加括号的不同方式
查看>>
Atom 检测php错误扩展linter-php
查看>>
ubuntu下msmtp+mutt的安装和配置
查看>>
第 13 章 sar - System Activity Reporter
查看>>
第 70 章 Oracle 监控
查看>>
vlc相关学习资料汇总及零散技术总结
查看>>
Intellij IDEA 14使用maven3.3.3 问题
查看>>
Java 进制转换
查看>>
Code: UrlBuilder class in JavaScript
查看>>
[LintCode] Best Time to Buy and Sell Stock 买卖股票的最佳时间
查看>>
Android中文合集(5)(126+8篇)(chm格式)
查看>>
解读|百分点凭啥能推出「中国首个行业AI决策系统」
查看>>
Debian里编译内核
查看>>