本文介绍如何删除单个文件、多个文件以及指定前缀的文件(Object)。
删除单个文件
通过delete
来删除某个文件:
let OSS = require('ali-oss')
let client = new OSS({
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>',
});
async function delete () {
try {
let result = await client.delete('object-name');
console.log(result);
} catch (e) {
console.log(e);
}
}
delete();
删除多个文件
通过deleteMulti
来删除多个文件,并通过quiet参数来指定是否返回删除的结果:
let OSS = require('ali-oss')
let client = new OSS({
region: '<Your region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>',
});
async function deleteMulti () {
try {
let result = await client.deleteMulti(['obj-1', 'obj-2', 'obj-3']);
console.log(result);
let result = await client.deleteMulti(['obj-1', 'obj-2', 'obj-3'], {
quiet: true
});
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteMulti();
删除指定前缀的文件
以下代码用于删除指定前缀(prefix)的文件:
const OSS = require('ali-oss');
const client = new OSS({
bucket: '<Your BucketName>',
region: '<Your Region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
});
// 处理请求失败的情况,防止promise.all中断,并返回失败原因和失败文件名。
async function handleDel(name, options) {
try {
await client.delete(name);
} catch (error) {
error.failObjectName = name;
return error;
}
}
// 删除指定前缀的文件。
async function deletePrefix(prefix) {
const list = client.list({
prefix: prefix,
});
list.objects = list.objects || [];
const result = await Promise.all(list.objects.map((v) => handleDel(v.name)));
console.log(result);
}
deletePrefix('prefix')
在文档使用中是否遇到以下问题
更多建议
匿名提交