Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将tar目录存储在节点js中的s3上?_Node.js_Amazon Web Services_Amazon S3_Stream_Aws Sdk - Fatal编程技术网

Node.js 如何将tar目录存储在节点js中的s3上?

Node.js 如何将tar目录存储在节点js中的s3上?,node.js,amazon-web-services,amazon-s3,stream,aws-sdk,Node.js,Amazon Web Services,Amazon S3,Stream,Aws Sdk,使用AWS SDK,我能够存储文件(压缩或未压缩)和压缩目录(使用tar),但不能存储未压缩目录 设置和依赖项: var aws = require('aws-sdk'), s3 = new aws.S3(), fs = require('fs'), fstream = require('fstream'), zlib = require('zlib'), tar = require('tar'), key = 'test', bucket

使用AWS SDK,我能够存储文件(压缩或未压缩)和压缩目录(使用tar),但不能存储未压缩目录

设置和依赖项:

var aws = require('aws-sdk'),
    s3 = new aws.S3(),
    fs = require('fs'),
    fstream = require('fstream'),
    zlib = require('zlib'),
    tar = require('tar'),
    key = 'test',
    bucket = 'mybucket';
精简上传代码:

var params = {
    Bucket: bucket,
    Key: key,
    Body: body
};
s3.upload(params)
    .send(function(err, data) {
            console.log("data:", data);
        }
    });
存储文件,未压缩:

body = fs.createReadStream('/var/www/file.txt');
body = fs.createReadStream('/var/www/file.txt')
    .pipe(zlib.createGzip());
body = fstream.Reader({type: "Directory", path: "/var/www"})
    .pipe(tar.Pack())
    .pipe(zlib.Gzip());
存储文件,压缩:

body = fs.createReadStream('/var/www/file.txt');
body = fs.createReadStream('/var/www/file.txt')
    .pipe(zlib.createGzip());
body = fstream.Reader({type: "Directory", path: "/var/www"})
    .pipe(tar.Pack())
    .pipe(zlib.Gzip());
存储目录,压缩:

body = fs.createReadStream('/var/www/file.txt');
body = fs.createReadStream('/var/www/file.txt')
    .pipe(zlib.createGzip());
body = fstream.Reader({type: "Directory", path: "/var/www"})
    .pipe(tar.Pack())
    .pipe(zlib.Gzip());
存储目录,未压缩(不工作):

body = fstream.Reader({type: "Directory", path: "/var/www"})
    .pipe(tar.Pack());
我得到的错误是:

node_modules/aws-sdk/lib/s3/managed_upload.js:346
    var buf = self.body.read(self.partSize - self.partBuffer.length) ||
                        ^
TypeError: undefined is not a function
    at ManagedUpload.fillStream (node_modules/aws-sdk/lib/s3/managed_upload.js:346:25)
    at Pack.<anonymous> (node_modules/aws-sdk/lib/s3/managed_upload.js:167:28)
    at Pack.emit (events.js:129:20)
    at Pack._process (node_modules/tar/lib/pack.js:121:8)
    at Pack.end (node_modules/tar/lib/pack.js:87:8)
    at DirReader.onend (stream.js:79:10)
    at DirReader.emit (events.js:129:20)
    at DirReader._read (node_modules/fstream/lib/dir-reader.js:82:10)
    at FileReader.onend (node_modules/fstream/lib/dir-reader.js:172:12)
    at FileReader.emit (events.js:129:20)
node_modules/aws sdk/lib/s3/managed_upload.js:346
var buf=self.body.read(self.partSize-self.partBuffer.length)||
^
TypeError:undefined不是函数
在ManagedUpload.fillStream(node_modules/aws sdk/lib/s3/managed_upload.js:346:25)
打包。(node_modules/aws sdk/lib/s3/managed_upload.js:167:28)
在Pack.emit(events.js:129:20)
at Pack.\u进程(node\u modules/tar/lib/Pack.js:121:8)
在Pack.end(node_modules/tar/lib/Pack.js:87:8)
在DirReader.onend(stream.js:79:10)
在DirReader.emit(events.js:129:20)
在DirReader.\u read(node\u modules/fstream/lib/dir reader.js:82:10)
在FileReader.onend(node_modules/fstream/lib/dir reader.js:172:12)
在FileReader.emit(events.js:129:20)
我是否需要将tar结果通过管道传输到aws sdk可以处理的东西中,或者什么