При попытке загрузить большой файл ( > 50 МБ) в Google Cloud Storage с помощью облачной функции Google я воспользуюсь этими исключениями в зависимости от параметров, которые я установил:
- При установке опции запроса "навсегда: false" я получаю: Ошибка: сокет повесил трубку
- При установке опции запроса "возобновить: истина" я получаю: Ошибка: напишите ECONNRESET
- При установке опции запроса "возобновить: false" я получаю: Ошибка: ESOCKETTIMEDOUT с возобновлением: false
Вот код, который я использую:
function uploadFile(bucketName, filename, data) {
console.log("Starting uploading blob...");
const Storage = require('@google-cloud/storage');
console.log("Creating client...");
const storage = new Storage();
storage.interceptors.push({
request: function(reqOpts) {
reqOpts.forever = false;
return reqOpts
}
});
console.log("Getting bucket " + bucketName + "...");
const bucket = storage.bucket(bucketName);
console.log("Creating file " + filename + "...");
const file = bucket.file(filename);
console.log("Creating write stream...");
var writeStream = file.createWriteStream({
metadata: {
contentType: 'plain/text'
},
resumable: false
});
writeStream.on('error', function(e) { console.error("An error occurred : " + e); });
writeStream.on('finish', function() { console.log("Success"); });
console.log("Initializing Streaming...");
var bufferStream = new stream.PassThrough();
bufferStream.end(data);
bufferStream.pipe(writeStream);
}
Есть ли что-то, что мне не хватает?