【发布时间】:2019-12-05 02:44:06
【问题描述】:
任何建议将不胜感激。 我的 Web 应用程序中有一个 json 变量,我想通过预签名 URL 压缩并上传到 S3。
我能够成功上传 JSON,但我无法 gzip 并上传 JSON。
我尝试构建 gzipped json 的三种不同方式是:
// example json
const someJson = { testOne: 'a', testTwo: 'b' };
// Attempt one
const stringUtf16 = JSON.stringify(someJson);
const resultAsBinString = pako.gzip(stringUtf16);
// Attempt two
const stringUtf16 = JSON.stringify(someJson);
const resultAsBinString = pako.gzip(stringUtf16, { to: 'string' });
// Attempt three
const stringUtf16ThatWeNeedInUtf8 = JSON.stringify(someJson);
const stringUtf8 = unescape(encodeURIComponent(stringUtf16ThatWeNeedInUtf8));
const resultAsBinString = pako.gzip(stringUtf8);
对于每次尝试,我都通过 Angular 的 HTTP 客户端上传了 resultAsBinString 以及标头 内容类型:'application/x-gzip' 和 内容编码:'gzip'
但是当(如果经常出现网络错误)文件随后从 S3 下载时,当尝试在终端中使用 gzip 或 gunzip 解压缩时,会给出错误消息:'not in gzip format'
我尝试关注的来源:
https://github.com/nodeca/pako/issues/55 https://github.com/nodeca/pako/blob/master/examples/browser.html
【问题讨论】:
标签: javascript amazon-s3 gzip pako