OSS中文档预览说明及示例代码

您所在的位置:网站首页 xml在线预览 OSS中文档预览说明及示例代码

OSS中文档预览说明及示例代码

2023-04-01 23:34| 来源: 网络整理| 查看: 265

文档预览功能支持表格文件、文字文件、演示文件以及pdf文件的在线预览,便于您进行文档内容管理与访问。

前提条件 已开通智能媒体管理IMM,并在OSS中绑定IMM。具体操作,请参见快速入门。 如果您通过RAM用户使用IMM相关功能,需确保RAM用户拥有以下权限。 系统权限:AliyunOSSReadOnlyAccess和AliyunIMMFullAccess

关于为RAM用户授权的具体操作,请参见为RAM用户授权。

自定义权限:oss:ProcessImm和ram:GetRole

为RAM用户授予自定义权限时,您需要先创建对应的自定义权限,然后为RAM用户授权。具体操作,请参见为RAM用户授予自定义的权限策略。

注意事项 支持在线预览的文件类型 表格文件:et、xls、xlt、xlsx、xlsm、xltx、xltm、csv 文字文件:doc、docx、txt、dot、wps、wpt、dotx、docm、dotm、rtf 演示文件:ppt、pptx、pptm、ppsx、ppsm、pps、potx、potm、dpt、dps pdf文件:pdf 文件大小限制

不支持在线预览大于200 MB的文件。

预览的方式

无论请求预览的文档读写权限为公共读或私有,都需要通过AccessKey ID、AccessKey Secret签名后得到的URL进行预览访问。

费用说明

关于文档预览涉及的计费规则,请参见IMM计费说明。

参数

操作名称:imm/previewdoc

参数说明如下:

名称 描述 copy 指定预览文档时是否支持复制内容。取值如下:

1:支持复制文档内容。

0:不支持复制文档内容。

流程介绍

文档预览流程如下:

客户端App或者Web端向业务服务器发起预览请求,并提供要预览的文件名。 业务服务器根据请求文件进行URL签名,将签名完成的URL提供给客户端App或者Web端。 客户端App或者Web端通过签名URL直接预览访问OSS文件。 重要 不支持通过签名URL直接预览已加密的文件。您可以通过以下步骤预览加密的文件: 通过JavaScript API设置加密文件解密流程。具体步骤,请参见设置加密文件解密流程。 调用智能媒体管理的CreateOfficeConversionTask接口,将原始文档转换为VECTOR向量格式输出到指定的OSS目录。 使用阿里云SDK

生成带签名的文档预览URL与生成带签名的图片处理URL方法类似,仅需将图片处理的操作改为文档预览操作即可。

下仅列举常见SDK的生成带签名的文档预览URL的代码示例。关于其他SDK的生成带签名的文档预览URL代码示例,请参见SDK简介。

import com.aliyun.oss.*; import com.aliyun.oss.model.GeneratePresignedUrlRequest; import java.net.URL; import java.util.Date; public class Demo { public static void main(String[] args) throws Throwable { // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 String accessKeyId = "yourAccessKeyId"; String accessKeySecret = "yourAccessKeySecret"; // 填写Bucket名称,例如examplebucket。 String bucketName = "examplebucket"; // 填写Object完整路径,完整路径中不能包含Bucket名称。 String objectName = "exampledir/exampleobject.txt"; // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { // 设置样式,样式中包含文档预览参数。 String style = "imm/previewdoc,copy_1"; // 指定签名URL过期时间为10分钟。 Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 ); GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET); req.setExpiration(expiration); req.setProcess(style); URL signedUrl = ossClient.generatePresignedUrl(req); System.out.println(signedUrl); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " + "but was rejected with an error response for some reason."); System.out.println("Error Message:" + oe.getErrorMessage()); System.out.println("Error Code:" + oe.getErrorCode()); System.out.println("Request ID:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + "such as not being able to access the network."); System.out.println("Error Message:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3