将http响应直接发送到S3存储桶

我试图通过http下载一个pdf文件并将其上传到S3 Bucket上。

HTTP响应内容types是application/pdf ,我试图简单地保存/上传在S3上的文件。

 http.get(options, function (resp) { resp.setEncoding('binary'); var data = ""; resp.on('data', function (chunk) { data += chunk; }); resp.on("end", function () { var fileName = documentId + "___test.pdf"; awsS3.uploadBinaryData(fileName, data, function (err, data) { return res.json(new CustomResponse('done')); }) }); 

uploadBinaryData方法如下所示:

 var params = { Bucket: config.get("S3.BUCKET_NAME"), Key: fileName, Body: data, ACL: "public-read", ContentLength: Buffer.byteLength(data), ContentEncoding: 'application/pdf' } awsS3.putObject(params, function (err, data) { if (err) callback(err, err.stack); else { var path = buildS3Url(fileName); callback(null, path); } }); 

上传工作,但PDF内容是乱七八糟的(我只看到12页中的3页,有些是空的,有些包含奇怪的字符)。

它看起来像一个编码问题,但我不知道什么是错的。