繁体   English   中英

使用Node.js中其他Buffer的一部分创建新的Buffer

[英]Make new Buffer using portion of other Buffer in Node.js

我目前正在Node.js中进行AWS调用。 该调用返回一个缓冲区。

  var aws = new AWS.S3(); 
   var params = {
       Bucket: s3config.bucket, 
       Key: s3config.tile_directory + filepath //, 
//     Range: 'bytes=0-' + (this.HEADER_SIZE - 1)
   };

   var ts = this; 
   aws.getObject(params, function(err, data){
       var buff = data.Body; 
   }

我想创建一个新的Buffer,它等同于我使用了注释掉的range: param。 所以我想要缓冲区的位0- ts.HEADER_SIZE ,以便我以后不必进行三个不同范围的AWS调用。

我试过了:

var newBuff = new Buffer(data.Body, 0, ts.HEADER_SIZE - 1); 

但它似乎只是让我回到我开始使用的缓冲区。 有任何想法吗?

您需要做的第一件事是创建一个大小为ts.HEADER_SIZE的新缓冲区。

var newBuff = new Buffer(ts.HEADER_SIZE)

然后,您可以将较大缓冲区的一部分复制到此新缓冲区中。

data.Body.copy(newBuff, 0, 0, ts.HEADER_SIZE - 1); 

newBuff的值现在将是您想要的子集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM