我尝试通过@ google-cloud / storage包将文件从帖子上传到Google云端存储。我禁用了自动处理功能,因此我将文件读取为Buffer。导致多次读取文件。如我所见,缓冲区大小为64 KB。当我将文件保存到Google Cloud Storage时,文件大小约为64 KB。因此云中的图像丢失了:)
const {Storage} = require('@google-cloud/storage');
const storage = new Storage({
projectId: myprojectId,
keyFilename: myPath
});
const bucket = storage.bucket(projectName);
const gcsName = `tickets/${fileName}`;
const file2 = bucket.file(gcsName);
const stream =await file2.createWriteStream({
metadata: {
contentType: file.stream.headers['content-type']
},
resumable: true
});
stream.on('error', (err) => {
console.log(err);
});
stream.on('finish', () => {
});
//stream.end(Buffer)
stream.end(file.stream._readableState.buffer.tail.data);
该代码仅将缓冲区保存一次。我的照片大小在64-128 KB之间,因此应保存多次。
如何解决此问题?
我将nodejs与Adonisjs Web框架一起使用。