Files
t/uni_modules/uni-media-library/uniCloud/cloudfunctions/uni-media-library-co/functions/delete-media.js
T
2025-03-12 20:11:03 +08:00

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