49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
async function deleteMedia (params) {
|
|
const {mediaIds = [], deleteOriginalFile = true} = params
|
|
const db = uniCloud.database()
|
|
|
|
if (mediaIds.length <= 0) {
|
|
return {
|
|
errCode: 0
|
|
}
|
|
}
|
|
|
|
const mediaList = await db.collection('uni-media-library').where({
|
|
_id: db.command.in(mediaIds)
|
|
}).get()
|
|
|
|
if (!mediaList.data || mediaList.data.length <= 0) {
|
|
return {
|
|
errCode: 0
|
|
}
|
|
}
|
|
|
|
const mediaFileIds = mediaList.data.filter(item => item.src).map(item => item.src)
|
|
const coverFileIds = mediaList.data.filter(item => item.type === 'video' && item.cover).map(item => item.cover)
|
|
|
|
try {
|
|
await Promise.all([
|
|
// 删除云数据库中的记录
|
|
db.collection('uni-media-library').where({
|
|
_id: db.command.in(mediaIds)
|
|
}).remove(),
|
|
// 删除云存储中的文件
|
|
deleteOriginalFile && mediaFileIds.length && uniCloud.deleteFile({
|
|
fileList: mediaFileIds
|
|
}),
|
|
// 删除云存储中的文件
|
|
deleteOriginalFile && coverFileIds.length && uniCloud.deleteFile({
|
|
fileList: coverFileIds
|
|
})
|
|
])
|
|
} catch (e) {
|
|
console.log('删除云存储图片失败', e)
|
|
}
|
|
|
|
return {
|
|
errCode: 0
|
|
}
|
|
}
|
|
|
|
module.exports = deleteMedia
|