cos-js-sdk-v5

在操作增删等动作之前需要配置你的腾讯云

*准备工作配置文档

这些都需要在腾讯云管理后台配置好 这样在开发过程中就可以正常的使用了。

安装 SDK

有两种使用方式:script 引入和webpack 引入方式

在vue中使用推荐webpack引入

通过npm i cos-js-sdk-v5 --save安装 SDK 依赖

在使用时引入即可

import COS from 'cos-js-sdk-v5' //脚手架安装

*注意在做对象操作(增删等功能之前一定要配置好储存桶)

上传对象(新增)

常见的上传:

上传的请求方法有三种,请选择适合自己应用的方式

 

直接上传单个文件到储存桶

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Key: '1.jpg',  /* 存储在桶里的对象键(请注意唯一性不然在删除的时候会找到相同的key),必须字段 */
    StorageClass: 'STANDARD',
    Body: fileObject, // 上传文件对象
    onProgress: function(progressData) {
        console.log(JSON.stringify(progressData));
    }
}, function(err, data) {
    console.log(err || data);
    //上传成功可以在data里拿到对应的地址(记得在使用时用拼接上https)
    //如: photoUrl = `https://${data.Location}`
});

在储存桶里新加一个文件夹

(疑问:创建文件夹时可以的命名必须要是 / 结尾才能创建文件夹?)

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Key: 'a/',  /* 存储在桶里的对象键(这里的key代表该文件夹的名称),必须字段 */
    Body: '',
}, function(err, data) {
    console.log(err || data);
});

在储存桶里新增一个对象到对应的文件下

cos.putObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Key: '文件夹名称/文件名称',  /* 存储在桶里的对象键(a/1.jpg),必须字段 */
    Key: '文件夹名称/文件名称',  /* 存储在桶里的对象键(a/1.jpg),必须字段 */
    Body: fileObject, // 上传文件对象
    onProgress: function(progressData) {
        console.log(JSON.stringify(progressData));
    }
}, function(err, data) {
    console.log(err || data);
});

删除对象

 删除单个文件和删除对应文件下的单个文件

cos.deleteObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Key: '要删除的文件名',  /* 存储在桶里的对象键(例如1.jpg),必须字段 */
}, function(err, data) {
    console.log(err || data);
});

cos.deleteObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Key: '指定文件夹名称/要删除的文件名',  /* 存储在桶里的对象键(例如1.jpg),必须字段 */
}, function(err, data) {
    console.log(err || data);
});

删除多个文件

cos.deleteMultipleObject({
    Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
    Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
    Objects: [
        { Key: '要删除的文件名称' }, /* 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段 */
        { Key: '要删除的文件名称' }, /* 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段 */
    ]
}, function(err, data) {
    console.log(err || data);
});

清空某个文件夹下的文件

var deleteFiles = function (marker) {
    cos.getBucket({
        Bucket: 'examplebucket-1250000000', /* 填入您自己的存储桶,必须字段 */
        Region: 'COS_REGION',  /* 存储桶所在地域,例如ap-beijing,必须字段 */
        Prefix: '要清空的文件夹名称',
        Marker: marker,
        MaxKeys: 1000,
    }, function (listError, listResult) {
        if (listError) return console.log('list error:', listError);
        var nextMarker = listResult.NextMarker;
        var objects = listResult.Contents.map(function (item) {
            return {Key: item.Key}
        });

        //注意这里拿到的objects 数组数据是包含当前文件的,如果你想把当前文件夹的内容包括该文件夹一起删除就可以不对objects 做处理
        //如果只是清空该文件夹下的内容就要 objects.shift();这样拿到就是该文件下的所有内容拉
        cos.deleteMultipleObject({
            Bucket: bucket,
            Region: region,
            Objects: objects,
        }, function (delError, deleteResult) {
            if (delError) {
                console.log('delete error', delError);
                console.log('delete stop');
            } else {
                console.log('delete result', deleteResult);
                if (listResult.IsTruncated === 'true') deleteFiles(nextMarker);
                else console.log('delete complete');
            }
        });
    });
}
deleteFiles();

Logo

前往低代码交流专区

更多推荐