相关疑难解决方法(0)

S3的解压缩文件失败,不确定原因

(下面的新信息)我正在尝试设置一个lambda函数,通过解压缩并将结果写回S3,对上传的tgz文件作出反应.解压缩和解压缩工作正常,但上传到S3失败:

/Users/russell/lambda/gzip/node_modules/aws-sdk/lib/s3/managed_upload.js:350
    var buf = self.body.read(self.partSize - self.partBuffer.length) ||
                        ^
TypeError: undefined is not a function
    at ManagedUpload.fillStream (/Users/russell/lambda/gzip/node_modules/aws-sdk/lib/s3/managed_upload.js:350:25)
    at Entry.<anonymous> (/Users/russell/lambda/gzip/node_modules/aws-sdk/lib/s3/managed_upload.js:167:28)
    at Entry.emit (events.js:104:17)
    at Entry._read (/Users/russell/lambda/gzip/node_modules/tar/lib/entry.js:123:12)
    at Entry.end (/Users/russell/lambda/gzip/node_modules/tar/lib/entry.js:82:8)
    at Parse._process (/Users/russell/lambda/gzip/node_modules/tar/lib/parse.js:107:13)
    at BlockStream.<anonymous> (/Users/russell/lambda/gzip/node_modules/tar/lib/parse.js:47:8)
    at BlockStream.emit (events.js:107:17)
    at BlockStream._emitChunk (/Users/russell/lambda/gzip/node_modules/tar/node_modules/block-stream/block-stream.js:145:10)
    at BlockStream.write (/Users/russell/lambda/gzip/node_modules/tar/node_modules/block-stream/block-stream.js:45:10)
Run Code Online (Sandbox Code Playgroud)

当我写入S3时会发生此错误,但如果我将文件本地写入磁盘则可以正常工作,因此管道是正确的.

以下是演示此问题的代码:

var aws = require('aws-sdk');
var s3 = new aws.S3({apiVersion: '2006-03-01'});
var zlib = require('zlib');
var tar = require('tar');
var fstream = require('fstream');

fstream.Reader({'path': 'testdata.tar.gz'})
    .pipe(zlib.Unzip())
    .pipe(tar.Parse())
    .on('entry', function(entry) {
        var filename = …
Run Code Online (Sandbox Code Playgroud)

tar amazon-s3 node.js node.js-stream aws-sdk

2
推荐指数
1
解决办法
2487
查看次数

标签 统计

amazon-s3 ×1

aws-sdk ×1

node.js ×1

node.js-stream ×1

tar ×1