通过Cloud Functions从Cloud Storage解压缩文件

时间:2018-07-03 10:31:50

标签: node.js google-cloud-platform google-cloud-storage google-cloud-functions

我的Google 云存储中有gzip文件,我必须使用 Cloud Functions 检查内部压缩的文件的校验和。

我开始使用解压缩示例from this example,但是它仅适用于ZIP文件,而不适用于gzip:

gcsSrcObject.createReadStream()
    .pipe(unzipper.Parse())
    .pipe(stream.Transform({
        objectMode: true,
        transform: function (entry, e, callback) {
            var filePath = entry.path;
            var type = entry.type;
            var size = entry.size;
            console.log(`Found ${type}: ${filePath}`);
            console.log(`Unzipping to: ${TEMP}/${prefix}/${filePath}`)
            var gcsDstObject = dstBucket.file(`${TEMP}/${prefix}/${filePath}`);
            entry
                .pipe(gcsDstObject.createWriteStream())
                .on('error', function (err) {
                    console.log(`Error: ${err}`);
                })
                .on('finish', function () {
                    console.log('Complete');
                    callback();
                });
        }
    }));

我还阅读了有关本机存储功能(gsutil cp)的文档,但是它只允许您从本地复制GZIP文件。

1 个答案:

答案 0 :(得分:0)

请记住,如果您的文件以“ Content-Encoding:gzip”存储在GCS中,则可以透明地动态解压缩它们。 GCS将此称为“转码”

https://cloud.google.com/storage/docs/transcoding