0
我在PHP中有一個完全可用的項目。我正在嘗試使Node.js中的該項目等價。該項目依賴於從AWS提取數據,然後從該數據中解壓縮標題。在PHP中,這是通過以下方式完成的:從Node.js的AWS調用中解壓縮頭文件
$request = @self::$s3->getObject(self::$bucket, self::$filepath,false,0, self::HeaderSize+ 5 * self::ResolutionEntrySize + self::TileCountSize + 256 * self::TileEntrySize);
// Open the PAR file.
if(is_object($request) && ($request->code < 400)) {
self::$modifiedTime = $request->headers['time'];
// Read and unpack the header.
self::$header = unpack('I*', substr($request->body, 0, self::HeaderSize));
self::$resolutionEntry = substr($request->body, self::HeaderSize, self::ResolutionEntrySize);
self::$resolutionTable = substr($request->body, self::HeaderSize + 5 * self::ResolutionEntrySize, self::TileCountSize + 256 * self::TileEntrySize);
}
我不確定如何在Node.js中執行相同的操作。我曾嘗試以下:
aws.getObject(params, function(err, data){
if(err == null){
var objectData = data.Body.toString('utf-8');
var sub = objectData.substring(0, 28);
var header = bufferpack.unpack('I*', sub);
}
});
在PHP中header
回來爲數字陣列,然而在節點跟它是null
。我知道AWS呼叫因爲data
工作返回爲以下幾點:
{
AcceptRanges: 'bytes',
LastModified: 'Wed, 06 Apr 2016 20:04:02 GMT',
ContentLength: '1602862',
ETag: '9826l1e5725fbd52l88ge3f5v0c123a4"',
ContentType: 'application/octet-stream',
Metadata: {},
Body: <Buffer 01 00 00 00 ... > }
我使用Bufferpack不正確?