vue之cos-js-sdk-v5 操作 腾讯云服务器
cos-js-sdk-v5在操作增删等动作之前需要配置你的腾讯云*准备工作配置文档这些都需要在腾讯云管理后台配置好 这样在开发过程中就可以正常的使用了。安装 SDK有两种使用方式:script 引入和webpack 引入方式在vue中使用推荐webpack引入通过npm i cos-js-sdk-v5 --save安装 SDK 依赖在使用时引入即可import COS from 'cos-js-s
·
在操作增删等动作之前需要配置你的腾讯云
这些都需要在腾讯云管理后台配置好 这样在开发过程中就可以正常的使用了。
安装 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();
更多推荐
已为社区贡献10条内容
所有评论(0)