// 云函数入口文件
const cloud = require('wx-server-sdk')
// 引入 fs 和 path 模块
const fs = require('fs')
const path = require('path')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
console.log('云函数开始执行') // 打印云函数开始执行的信息
// 云函数入口函数
exports.main = async (event, context) => {
try {
console.log('输入的参数', event) // 打印 event 对象,包含所有传递给云函数的参数
// 获取用户的 openid
const wxContext = cloud.getWXContext()
const openid = wxContext.OPENID
console.log('获取用户的 openid', openid) // 打印用户的 openid
// 获取文件的文件 ID
const fileId = event.fileID // 如果传入 fileID
console.log('获取文件的文件 ID', fileId) // 打印文件的文件 ID
// 获取文件的文件名
const fileName = path.basename(fileId) // 使用 path 模块的 basename 方法,从 fileId 中提取出文件名
console.log('获取文件的文件名', fileName) // 打印文件的文件名
// 调用文档转换服务,把文件转换成 pdf,并获取转换后的文件 ID
const convertRes = await cloud.openapi.clouddocs.convert({
type: 'doc2pdf', // 指定文档转换服务的类型为 doc2pdf
fileid: fileId, // 传入文件 ID
outputType: 'pdf' // 指定转换后的文件格式为 pdf
})
const convertedFileId = convertRes.fileid // 获取转换后的文件 ID
console.log('调用文档转换服务,把文件转换成 pdf,并获取转换后的文件 ID', convertedFileId) // 打印转换后的文件 ID
// 下载转换后的文件,并获取临时路径
const downloadRes = await cloud.downloadFile({
fileID: convertedFileId, // 传入文件 ID
})
const tempFilePath = downloadRes.tempFilePath // 获取临时路径
console.log('下载转换后的文件,并获取临时路径', tempFilePath) // 打印临时路径
// 上传转换后的文件到云存储,并获取文件 ID
const uploadConvertedRes = await cloud.uploadFile({
cloudPath: `${openid}/${fileName}.pdf`, // 指定云存储的路径,可以自定义
filePath: tempFilePath, // 传入转换后文件的临时路径
fileContent: fs.readFileSync(tempFilePath) // 传入转换后文件的内容,使用 fs 模块的 readFileSync 方法,从临时路径中读取文件内容
})
convertedFileId = uploadConvertedRes.fileID // 获取文件 ID
console.log('上传转换后的文件到云存储,并获取文件 ID', convertedFileId) // 打印文件 ID
// 获取转换后文件的访问链接
const getTempFileURLRes = await cloud.getTempFileURL({
fileList: [convertedFileId], // 传入文件 ID 列表
})
const fileURL = getTempFileURLRes.fileList[0].tempFileURL // 获取文件的访问链接
console.log('获取转换后文件的访问链接', fileURL) // 打印文件的访问链接
// 返回转换成功的结果和文件的访问链接
console.log('转换成功,返回文件的访问链接') // 打印转换成功的信息
return fileURL // 直接返回文件的访问链接
} catch (err) {
// 返回转换失败的结果和错误信息
console.log('转换失败,返回错误信息', err) // 打印转换失败的信息和错误对象
return {
code: -1,
message: '转换失败',
data: {
error: err,
},
}
}
}
在const convertRes = await cloud.openapi.clouddocs.convert这里报错说找不到API,好像是要去云开发里开通文档转换服务,可是我找不到啊!!!
