徐向博 / Imin.

腾讯对象存储COS JS SDK
作者:Imin 时间:2020-06-16 分类: 前端

最近在搞自己的网盘,折腾了华为、阿里、腾讯、七牛等几家公司的对象存储,总体上来说开发过程类似,但是也算各有千秋吧,,经过几番考虑,最终放弃了用了三年的阿里云OSS,选择了腾讯云COS,原因有几个:

1、客户端SDK丰富、上手快,对前端比较友好,文档齐全(个人觉得腾讯系为数不多的好文档)

2、开发流程相对简单,没有过多的复杂操作

3、工单系统响应良好,方便解决问题

4、客户端体验较好,以上四种云存储的客户端中,个人认为体验比较好的顺序:腾讯 -> 华为 -> 阿里 -> 七牛


上代码:

import COS_SDK from 'cos-js-sdk-v5'

// COS配置
let config = {
    name: '桶名',
    area: '地域',
    id: 'ID',
    key: 'KEY'
}

// 创建客户端
const client = new COS_SDK({
    SecretId: config.id,
    SecretKey: config.key,
})

const cos = {
    // 上传
    up (params){
        return new Promise((resolve, reject) => {
            client.putObject({
                Bucket: config.name,
                Region: config.area,
                Key: params.name,
                StorageClass: 'STANDARD',
                Body: params.body,
                onProgress: params.progress
            }, function(err, data) {
                if(err) reject(err);
                else resolve(data);
            });
        })
    },
    // 获取带签名的URL
    getUrl (name){
        return new Promise((resolve, reject) => {
            client.getObjectUrl({
                Bucket: config.name,
                Region: config.area,
                Key: name
            }, function(err, data){
                if(err) reject(err);
                else resolve(data);
            })
        })
    },
}

export default cos

开发之前,建议先阅读腾讯cos开发文档。

本文标签: 腾讯cos