【发布时间】:2021-10-25 15:12:38
【问题描述】:
我尝试在上传到谷歌云存储之前调整图像大小或压缩图像。 上传工作正常,但调整大小似乎不起作用。
这是我的代码:
const uploadImage = async (file) => new Promise((resolve, reject) => {
let { originalname, buffer } = file
sharp(buffer)
.resize(1800, 948)
.toFormat("jpeg")
.jpeg({ quality: 80 })
.toBuffer()
const blob = bucket.file(originalname.replace(/ /g, "_"))
const blobStream = blob.createWriteStream({
resumable: false
})
blobStream.on('finish', () => {
const publicUrl = format(
`https://storage.googleapis.com/${bucket.name}/${blob.name}`
)
resolve(publicUrl)
}).on('error', () => {
reject(`Unable to upload image, something went wrong`)
})
.end(buffer)
})
【问题讨论】:
-
toBuffer()似乎正在返回一个承诺。尝试在 promisenew Promise(async (resolve, reject)中添加 async 并在此处等待let { originalname, buffer } = await file...
标签: javascript node.js express google-cloud-storage sharp