【发布时间】:2019-05-01 10:46:41
【问题描述】:
我正在尝试创建一个服务,该服务获取一个 zip 文件,将其解压缩并将其内容上传到 Google Cloud Storage 存储桶。 解压缩部分似乎运行良好,但在我的 GCS 存储桶中,所有文件似乎都是空的。 我正在使用以下代码:
app.post('/fileupload', function(req, res) {
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
const uuid = uuidv4();
console.log(files.filetoupload.path); // temporary path to zip
fs.createReadStream(files.filetoupload.path)
.pipe(unzip.Parse())
.on('entry', function (entry) {
var fileName = entry.path;
var type = entry.type; // 'Directory' or 'File'
var size = entry.size;
const gcsname = uuid + '/' + fileName;
const blob = bucket.file(gcsname);
const blobStream = blob.createWriteStream(entry.path);
blobStream.on('error', (err) => {
console.log(err);
});
blobStream.on('finish', () => {
const publicUrl = format(`https://storage.googleapis.com/${bucket.name}/${blob.name}`);
console.log(publicUrl); // file on GCS
});
blobStream.end(entry.buffer);
});
});
});
我对 Node.js 很陌生,所以我可能忽略了一些东西——我在文档上花了一些时间,但我不太知道该怎么做。 有人可以建议可能是什么问题吗?
【问题讨论】:
标签: javascript node.js google-cloud-storage unzip