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

博主在React中实现文件预览功能,选择腾讯云存储桶服务,通过SecretID和SecretKey进行文件操作。介绍了开通存储桶和数据万象服务的步骤,以及使用JDK进行文件列表、封面和预览的方法。同时,提到SDK对某些语言的tag支持不足。
摘要由CSDN通过智能技术生成


为什么使用存储桶

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

使用前的准备

服务开通

开通存储桶服务

腾讯云 存储桶
点击立即使用即可,会跳转至概览

开通数据万象服务

腾讯云-数据万象
数据万象服务能够进行文档预览,点击立即使用,进行开通
或者在存储桶放入文件,点击预览会引导你开通数据万象服务

JDK安装

npm i cos-nodejs-sdk-v5 --save

使用

创建存储桶对象

const cos = new COS({
   
  SecretId: process.env.SECRETID,
  SecretKey: process.env.SECRETKEY
});

在.env中填写SecretID与SecretKey,如下图所示
在这里插入图片描述

SECRETID: "AKIDgAPO6XhaCXcPvA8qITN0MRFn32kBMFsE",
SECRETKEY: "7xPaV
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先,需要在腾讯云控制台中创建一个存储,并获取存储的信息,包括存储名称、访问密钥ID、访问密钥Secret、存储所在地域等。 2. 在PHP代码中,使用curl函数调用腾讯云COS API进行操作。具体步骤如下: (1)构造API请求的URL和参数。API请求的URL格式为:http://[bucket-name].cos.[region].myqcloud.com/[object],其中[bucket-name]为存储名称,[region]为存储所在地域,[object]为对象名称(可选)。 (2)生成API请求的签名。签名是用于验证请求合法性的关键信息,需要使用访问密钥ID和访问密钥Secret进行计算。计算签名的具体方法可以参考腾讯云COS API文档中的签名方法。 (3)发送API请求。使用curl函数发送API请求,并在请求头中设置Authorization等相关参数。 (4)处理API响应。根据API返回的HTTP状态码和响应内容进行相应的处理,例如上传文件、下载文件、删除文件等操作。 3. 示例代码如下: ```php // 存储信息 $bucket = "mybucket-1250000000"; $region = "ap-chengdu"; $accessKeyId = "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $accessKeySecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // API请求参数 $object = "test.txt"; $url = "http://{$bucket}.cos.{$region}.myqcloud.com/{$object}"; $method = "PUT"; $httpHeaders = [ "Content-Type: text/plain", "Content-Length: 11", ]; $httpBody = "Hello World"; // 生成签名 $timestamp = time(); $expired = $timestamp + 3600; // 签名有效期1小时 $sign = md5("{$accessKeySecret}\n{$timestamp}\n{$expired}\n0\n"); $authorization = "q-sign-algorithm=sha1&q-ak={$accessKeyId}&q-sign-time={$timestamp};{$expired}&q-key-time={$timestamp};{$expired}&q-header-list=content-type;content-length&q-url-param-list=&q-signature={$sign}"; // 发送API请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders); curl_setopt($ch, CURLOPT_POSTFIELDS, $httpBody); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: {$authorization}", ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // 处理API响应 if ($httpCode == 200) { echo "上传成功"; } else { echo "上传失败,错误码:{$httpCode}"; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值