智能媒体管理产品文档转换/预览功能介绍(4)--快速搭建
2018-05-16 22:51
786 查看
摘要: 智能媒体管理提供了 Cloud Native 架构的文档转换/预览服务,本文介绍快速搭建的示例,让您用 DIY 的体验方式实现文档预览功能。
AliyunSTSAssumeRoleAccess。具有申请 STS Token的权限,预览时为客户端提供 STS Token,从而保证前端访问 OSS 的安全性。
AliyunIMMFullAccess。具有执行 IMM 服务的权限,具有了该权限就可以调用文档转换接口。
注意:目前每个子账号最多使用2个 AK,可以通过删除旧的 AK 来解决。
如上图中,得到 AK ID 类似
在 华东2(上海区域)创建了
注意:该桶名只是示例,不能直接使用,需要替换为您的桶名。
注意:一定需保证创建
注意:在 pom.xml 文件中添加
注意:实际使用时请把
此时,可以通过如下地址格式完成文档预览。
注意:实际使用时,需要把
智能媒体管理产品文档转换/预览功能介绍(2)---转换原理
智能媒体管理产品文档转换/预览功能介绍(3)---前端预览
原文链接
一、导语
智能媒体管理 提供了 Cloud Native 架构的文档转换/预览服务,本文介绍快速搭建的示例,让您用 DIY 的体验方式实现文档预览功能。二、环境准备
2.1 准备 RAM 子账号
为了实现安全的文档转换/预览功能,本文使用 RAM 子账号来管理资源并进行代码开发。2.1.1 创建 test 子账号
登陆 访问控制 页面,点击“用户管理”,选择“新建用户”,创建子账号 test ,创建成功如下图所示:2.1.2 子账号授权
在创建子账号成功后的界面,选择 test 子账号,点击“授权”,确保给该子账号授予如下策略:AliyunOSSFullAccess。具有完整访问 OSS 的权限,让文档转换能够在 OSS 存储转换数据。本文为了快速搭建而选择此权限,如果需要更精细的权限控制,可以参考 OSS 子账号设置常见问题 。AliyunSTSAssumeRoleAccess。具有申请 STS Token的权限,预览时为客户端提供 STS Token,从而保证前端访问 OSS 的安全性。
AliyunIMMFullAccess。具有执行 IMM 服务的权限,具有了该权限就可以调用文档转换接口。
2.1.3 生成子账号的AK(Access Key)
代码开发时,需要使用AK(Access Key)。在 2.1.1章节 创建子账号成功后的界面,选择 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 服务的 Java SDK 文档。注意:在 pom.xml 文件中添加
aliyun-java-sdk-core和
aliyun-java-sdk-imm的版本依赖。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <optional>true</optional> <version>3.5.1</version></dependency><dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-imm</artifactId> <optional>true</optional> <version>1.2.1</version></dependency>
三、开发部署
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®ion=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 的 AssumeRole 得到 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 ®ion=oss-cn-shanghai &bucket=yourid-dev-imm &...
四、参考文档
参考如下的文章,帮助您掌握相关背景:智能媒体管理产品文档转换/预览功能介绍(1)---Cloud Native架构智能媒体管理产品文档转换/预览功能介绍(2)---转换原理
智能媒体管理产品文档转换/预览功能介绍(3)---前端预览
原文链接
相关文章推荐
- 场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品
- 场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品
- 场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品
- 一张图看懂阿里云智能媒体管理产品
- 1月9日云栖精选夜读:场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品
- 企业仓库管理软件免费版要把处理好三个问题 利用凌云仓库管理软件免费版的智能补货功能可以快速的指定采购策略,这里面就需要及时了解每一张采购订单的执行情况,不但要防止遗漏订单情况的发生,更要防止情绪化采购
- 在Linux主机上搭建SVN,用于同步提交修改,实现本地提交线上预览(SVN Hook功能实现)
- 【项目管理与构建】Maven搭建私服——Nexus的详细介绍以及安装(四)
- iMatrix平台核心功能—权限管理介绍
- 【DOORS】产品功能介绍
- Active MQ Web管理界面功能介绍
- Trove系列(三)—Trove的功能管理功能介绍
- 30分钟快速搭建Web CRUD的管理平台--django神奇魔法
- 小米监控——open-falcon 的分布式搭建,让各机房的agent都被同一服务端管理,只让报警功能各自承担
- PDM系统输出管理功能介绍
- Netsharp快速入门(之16) Netsharp基础功能(权限管理)
- [工作流与Activiti] - No.4 简易工作流系统搭建(3) : 流程管理功能+个人任务管理
- Linux下快速搭建SVN服务管理项目源代码