我正在尝试运行我期望的一个非常常见的用例:
我需要从 Amazon S3 下载一个 gzip 文件(复杂的 JSON 数据集),并在 Javascript 中解压缩(gunzip)它。除了最后的“充气”步骤外,我一切正常。
我正在使用 Amazon Gateway,并且已经确认网关正在正确传输压缩文件(使用 Curl 和 7-zip 来验证结果数据是否来自 API)。不幸的是,当我尝试使用 Pako 在 Javascript 中扩充数据时,出现错误。
这是我的代码(注意:response.data 是从 AWS 传输的二进制数据):
apigClient.dataGet(params, {}, {})
.then( (response) => {
console.log(response); //shows response including header and data
const result = pako.inflate(new Uint8Array(response.data), { to: 'string' });
// ERROR HERE: 'buffer error'
}).catch ( (itemGetError) => {
console.log(itemGetError);
});
Run Code Online (Sandbox Code Playgroud)
还尝试了一个版本,通过在膨胀之前添加以下内容将二进制数据输入拆分为数组:
const charData = response.data.split('').map(function(x){return x.charCodeAt(0); });
const binData = new Uint8Array(charData);
const result = pako.inflate(binData, { to: …Run Code Online (Sandbox Code Playgroud)