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 Answer
0

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

profile pictureAWS
EXPERT
kentrad
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions