S3/CloudFront problem while trying to fetch gziped files using XMLHttpRequest with Range headers

0

Hello,

I am trying to configure an S3 bucket and a CloudFront distribution that points to that bucket to allow to download large binary files in parts (with gzip compression) using the GET Range header. So far without success:

      let request = new XMLHttpRequest();
      request.open("GET", path, true);
      request.setRequestHeader("Range", `bytes=${startByte}-${endByte}`);
      request.responseType = "arraybuffer"; // or 'blob';   
      request.send();

In S3, each binary file has the following metadata:

Content-Encoding: gzip Content-Type: binary/octet-stream

S3 CORS configuration is as follows:

[ { "AllowedHeaders": [ "" ], "AllowedMethods": [ "GET", "HEAD" ], "AllowedOrigins": [ "" ], "ExposeHeaders": [] } ]

Files can be downloaded correctly without the Range header.

When using the range header xmlhttp.onerror = (e) => {} is triggered. In the Chrome network debugging section I see "net::ERROR_CONTENT_DECODING_FAILED."

Any ideas how to solve this?

1回答
0

Could it be that the part is too large? Use range requests to cache large objects

profile pictureAWS
エキスパート
kentrad
回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ