问题描述
我尝试使用TypeScript和NodeJS Firebase库将文件上传到我的Google云存储中,每次尝试创建并写入文件时创建,但始终以0字节结尾...
这是我的代码...
downloadFile(url:string,_path?:string):{dest: string,file: fs.WriteStream}{
const dest: string = _path||path.join(__dirname,'..','temp',`${uuid()}.temp`);
console.log(dest);
const file = fs.createWriteStream(dest);
http.get(url,function(response) {
response.pipe(file);
file.on('finish',() => {
file.close();
});
});
return {dest,file};
}
downloadFiletoStorage(url: string,filename: string) {
const dest: string = this.downloadFile(url).dest;
const ext: string = filename.split('.').splice(-1)[0];
const src = fs.readFileSync(dest);
const file = storage.file(filename);
const stream = file.createWriteStream({
Metadata: {
contentType: mimetypes[ext]
}
});
stream.on('error',err => {
if(err) {
console.log(err);
}
});
stream.on('finish',() => {
console.log('Finished!');
});
stream.end(src);
}
我在我的Express应用程序中调用此函数(出于测试目的,在run函数中调用该函数)
app.listen(process.env.PORT||8080,async () => {
console.log(
utils.downloadFiletoStorage(
'https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png','bruv.png'
));
console.log(`Up and ready to go on port ${process.env.PORT||8080}`);
});
我已经尝试了很多事情,并且还研究了许多其他问题...似乎写任何东西的唯一方法是,如果我打开gzip,然后打开并恢复这些文件,完全损坏,它们甚至不会出现在Google Cloud本身上。
如果您知道如何解决此问题,请提供帮助! 谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)