mis*_*sha 6 amazon-s3 node.js graphicsmagick
我正在使用 GraphicsMagic 来修改图像。在图像上绘制文本后,我需要将结果图像上传到 s3 存储桶。但是我怀疑 toBuffer() 返回空结果,因为我收到以下错误:
失败:预期 params.Body 为字符串、Buffer、Stream、Blob 或类型化数组对象
这是我的代码:
s3.getObject({Bucket: srcBucket, Key: srcKey}).promise()
.then(data => gm(data.Body)
.fill('white')
.stroke('black', 1)
.drawText(0, -60, text.toUpperCase(), 'center')
.toBuffer(imageType,function (err, buffer) {
if (err) return handle(err);
console.log('done!');
})
)
.then(buffer => s3.putObject({
Body: buffer,
Bucket: dstBucket,
ContentType: buffer.ContentType,
Key: dstKey,
}).promise()
)
.then(() => callback(null, {
statusCode: 200,
body: JSON.stringify({
url: dstKey
})
})
)
.catch(err => callback(err))
Run Code Online (Sandbox Code Playgroud)
我认为你只能从 中提供的回调中获取缓冲区toBuffer。callback我假设您在代码中定义了一些函数:
s3.getObject({Bucket: srcBucket, Key: srcKey}).promise()
.then(data => gm(data.Body)
.fill('white')
.stroke('black', 1)
.drawText(0, -60, text.toUpperCase(), 'center')
.toBuffer(imageType,function (err, buffer) {
if (err) return handle(err);
s3.putObject({
Body: buffer,
Bucket: dstBucket,
ContentType: buffer.ContentType,
Key: dstKey,
}).promise()
.then(() => callback(null, {
statusCode: 200,
body: JSON.stringify({
url: dstKey
})
})
)
.catch(err => callback(err))
// console.log('done!');
})
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10725 次 |
| 最近记录: |