创建Gzip压缩的JSON文件并使用NodeJS在S3存储桶上传

时间:2018-03-16 07:44:01

标签: node.js amazon-s3 gzip

我想在S3存储桶上传GZip压缩的JSON文件。我正在努力解决这个问题,有人可以帮我解决这个问题。因为,我正在尝试使用zlib npm模块进行Gzip压缩JSON文件但是没有得到一个实现这一目标的方法。

以下是我在S3上上传Gzip压缩JSON文件的上传方法:

    var uploadEntitlementDataOnS3 = function(next, event,
    jsonFileContent, filePath, results) {
    console.log("uploadEntitlementDataOnS3 function 
    started",jsonFileContent);
        var bufferObject = new 
    Buffer.from(JSON.stringify(jsonFileContent));
        var s3 = new AWS.S3();
        var params = {
            Bucket: configurationHolder.config.bucketName,
            Key: filePath,
            Body: bufferObject,
            CacheControl: 'no-cache',
            ContentType: "application/json",
            ContentEncoding: 'gzip'
        }
        s3.putObject(params, function(err, data) {
            if (err) {
                console.log(err, err.stack);
                next(err);
            } else {
                next(null, filePath);
            }
        });
    };

由于

1 个答案:

答案 0 :(得分:1)

另外,我使用下面的代码片段进行gzip压缩,如果我使用错误的方法,请告诉我:

    var bufferObject = new Buffer.from(JSON.stringify(jsonFileContent));
    var zlib = require('zlib');
    zlib.gunzip(bufferObject, function(err, zipped) {
        if(err) {
          console.log("error",err);
          next(err);
        }
        else {
          console.log("zipped",zipped);
        }
      })