前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【转载】文件预览-使用SecretID和SecretKey进行腾讯云cos桶文件预览(word、ppt等)

【转载】文件预览-使用SecretID和SecretKey进行腾讯云cos桶文件预览(word、ppt等)

作者头像
一栗沙子
发布2022-06-15 19:47:17
3.6K0
发布2022-06-15 19:47:17
举报
文章被收录于专栏:小白初体验

为什么使用存储桶

博主需要完成一个文件预览的功能,没想到React没有插件,可能是PPT、Word的版权问题,pdf就有viewer之类的包。也试了一下微软的,不太好用,很久没维护了,因此选择了腾讯云的存储桶,可以白嫖一波,50GB 6个月。

使用前的准备

服务开通

开通存储桶服务

腾讯云 存储桶

点击立即使用即可,会跳转至概览

开通数据万象服务

腾讯云-数据万象

数据万象服务能够进行文档预览,点击立即使用,进行开通

或者在存储桶放入文件,点击预览会引导你开通数据万象服务

JDK安装

代码语言:text
复制
npm i cos-nodejs-sdk-v5 --save

使用

创建存储桶对象

代码语言:javascript
复制
const cos = new COS({
  SecretId: process.env.SECRETID,
  SecretKey: process.env.SECRETKEY
});

在.env中填写SecretID与SecretKey,如下图所示

在这里插入图片描述
在这里插入图片描述
代码语言:shell
复制
SECRETID: "AKIDgAPO6XhaCXcPvA8qITN0MRFn32kBMFsE",
SECRETKEY: "7xPaV9VaOwDExQcXBYeT1II0SdYBXcQx",

这里其实设计的不太好,没必要是必填项,因为我写的代码只有读,又设置的公有读,所以根本不需要SecretID和SecretKey

文档列表

列出所有文档

代码语言:javascript
复制
var listFolder = function(marker) {
    cos.getBucket({
        Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
        Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
        Prefix: 'a/',   /* Prefix表示列出的object的key以prefix开始,非必须 */
        Marker: marker,
        MaxKeys: 1000,
    }, function(err, data) {
        if (err) {
            return console.log('list error:', err);
        } else {
            console.log('list result:', data.Contents);
            if (data.IsTruncated === 'true') listFolder(data.NextMarker);
            else return console.log('list complete');
        }
    });
};
listFolder();

通过/分割,放到数组里即可,之后获取封面和预览时遍历数组,获得ObjectKey即可。

文档封面

代码语言:javascript
复制
GET /<ObjectKey>?ci-process=doc-preview&page=<page>&srcType=<srcType>&ImageParams=<ImageParams> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String

将response作为img标签的src即可

文档预览

代码语言:javascript
复制
GET /<ObjectKey>?ci-process=doc-preview&dstType=html HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date

将reponse作为iframe的src即可

吐槽一下:腾讯的COS,某些语言的SDK不支持tag,只能调用API :(

参考

腾讯云Node.js的JDK

列出文档对象

下载对象

文档封面图片

文档转HTML

原文:https://blog.csdn.net/work_harder999/article/details/124279206

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么使用存储桶
  • 使用前的准备
    • 服务开通
      • 开通存储桶服务
      • 开通数据万象服务
    • JDK安装
    • 使用
      • 创建存储桶对象
        • 文档列表
          • 文档封面
            • 文档预览
            • 参考
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档