Использую S3 и проект Django: Импортируемые модули javascript не включают параметры "X-Amz", в результате чего получается 403
На странице HTML я включаю скрипт с:
<script type="module" src="{% static 'home/js/country/country.detail.js' %}"></script>
Этот скрипт загружается нормально, а затем импортирует другие модули:
// country.detail.js file
import FooConverter from "./foo.converter.js";
import Alert from "/static/app/alert.messenger.js";
import MESSAGES from "/static/app/messages.txt.js";
Когда браузер делает запрос на получение этих других модулей из ведра S3, я получаю код состояния 403 - Forbidden, потому что браузер не включает параметры "X-Amz":
Вот запрос, когда браузер получает скрипт fee.converter.js (этот скрипт загружается нормально):
https://bucketname.s3.us-east-2.amazonaws.com/static/home/js/country/country.detail.js?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=creds%2F20230207%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20230207T145100Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a5364797888bb0b7ce5ead84c656734dbd8b3093af43cf4ddc34a5734c28d743
Вот запрос при получении alert.messenger.js (ответ 403, потому что отсутствуют параметры X-Amz):
https://bucketname.s3.us-east-2.amazonaws.com/static/app/alert.messenger.js
Как я могу решить эту проблему?
django-storages==1.13.1
Django==3.2.6
Это конфигурация CORS в ведре:
{
"CORSRules": [
{
"ID": "allow-auth",
"AllowedHeaders": [
"Authorization"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"MaxAgeSeconds": 3000
},
{
"ID": "allow-GET-locahost",
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"HEAD",
"GET"
],
"AllowedOrigins": [
"http://localhost"
],
"ExposeHeaders": [
"ETag",
"x-amz-meta-custom-header"
]
}
]
}