node.js - 如何通过流上传和调整大小?
问题描述
sharp
我在通过和将调整大小的图像上传到亚马逊 s3 时遇到问题readStream
。它只上传第一块图像。但是当我创建一个 writeStream 并在本地保存文件时,一切正常。
return new Promise((resolve, reject) => {
const readableStream = fs.createReadStream(pathToUserFile);
const transformer = sharp().resize(300, 250);
readableStream.pipe(transformer);
const params = {
Bucket: S3_BUCKET_NAME,
Body: readableStream,
ACL: 'public-read',
Key: `S3_BUCKET_PATH/${name}`,
ContentType: type
}
s3.upload(params, (err, data) => {
if (err) reject(err);
if (data) resolve();
})
});
也许我做错了什么?我可以将调整大小的文件保存到磁盘并发送...但我想发送文件而不进行本地保存
解决方案
推荐阅读
- node.js - 无法将 mongoDB 保存调用的响应返回到前端
- java - 即使在应用程序关闭时也保存用户选择的图像?
- java - Spring Webflux Security - 基于客户端证书的授权端点
- python-3.x - 如何在 python 3 的列表字符串中将 ' ' 替换为 '0'?
- pdf - 使用 ghostscript 为 postscript 文件中的某些页面添加 Duplex 选项
- angular - ts-toolbelt 在 node_modules 上给出错误。类型别名“MergeList”循环引用自身
- python - python中未定义全局变量名称错误
- json - 动态结构定义
- hiveql - 如何在日期列上查询 2 个表,如果不存在匹配的日期,那么我们必须加入下一个最大日期
- jenkins - 如何在 javascript 中解析或编写 jenkinsfile