Javascript 如何在node.js中创建流?
我有一个函数,它将Javascript 如何在node.js中创建流?,javascript,node.js,stream,Javascript,Node.js,Stream,我有一个函数,它将流作为参数: startUpload(stream, filename) { const upload = this.s3.upload({ Bucket: this.bucket, ServerSideEncryption: 'aws:kms', SSEKMSKeyId: this.s3SseKmsKeyId, Key: `${this.key}/${filename}`, Body: stream
流
作为参数:
startUpload(stream, filename) {
const upload = this.s3.upload({
Bucket: this.bucket,
ServerSideEncryption: 'aws:kms',
SSEKMSKeyId: this.s3SseKmsKeyId,
Key: `${this.key}/${filename}`,
Body: stream
}, { partSize: 50 * 1024 * 1024, queueSize: 1 });
}
如何创建流并向其中写入数据?下面的代码适合我
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: process.env.AWS_KeyId,
secretAccessKey: process.env.AWS_secret,
// region:process.env.AWS_region
});
const s3 = new AWS.S3({ signatureVersion: 'v4', })
var multer = require('multer')
var multerS3 = require('multer-s3')
var photoBucket = new AWS.S3({
params: {
Bucket: 'carwhapps'
}
})
// let source is like req.files.filename or test with static file like ./public/test.jpg
photoBucket.upload({
ACL: 'public-read',
Body: fs.createReadStream(source),
Key: filename,
ContentType: 'application/octet-stream' // force download if it's accessed as a top location
},(err, response)=>{
console.log(err, response)
})
我会检查和,除非我没有从文件中读取。我正在尝试直接写入流。好的,我已经在带有connect multiparty plugin的express应用程序中提到,您在req.files对象中获得了文件,并将post文件直接发送到createReadStream()检查我的注释,前提是您没有将文件保存在磁盘中,并且http请求已经以流的形式到达服务器