Я пытаюсь загрузить файл из сообщения в Google Cloud Storage с помощью пакета @ google-cloud / storage.Я отключаю автоматическую обработку, поэтому я читаю файл как буфер.Это вызывает многократное чтение файла.Как я вижу, размер буфера 64 КБ.Когда я сохраняю файл в Google Cloud Storage, размер файла составляет ~ 64 КБ.Поэтому изображения в облаке отсутствуют :)
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 КБ, поэтому ее следует сохранять несколько раз.
Как я могу решить эту проблему?
Я использую nodejs с веб-фреймворком Adonisjs.