我目前正在 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;
}
我想创建一个新的缓冲区,它相当于我使用注释掉的 range:
参数。所以我想要缓冲区的位 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
的值现在将是您想要的子集。
关于javascript - 使用 Node.js 中其他 Buffer 的一部分创建新的 Buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030941/