Доступ к ответу XMLHttpRequest на запрос preflight не проходит проверку контроля доступа

Я пытаюсь загрузить файл с помощью FilePond (с Svelte) в Google Storage, подписанный URL. Когда Chrome делает preflight, он получает 200, но потом, похоже, не получает заголовок Access-Control-Allow-Origin в этом ответе.

В консоли JS ошибка:

Доступ к XMLHttpRequest на 'https://storage.googleapis.com/...' от origin 'https://***.appspot.com' был заблокирован политикой CORS: Ответ на предварительный запрос не проходит проверку контроля доступа: No Заголовок 'Access-Control-Allow-Origin' присутствует на запрашиваемом ресурсе.

Я генерирую подписанный URL в Python:

bucket = storage_client.bucket(settings.PRIVATE_GCP_BUCKET)
blob = bucket.blob(f'upload/video_{obj.id}.mp4')

# Get the time in UTC
ini_time_for_now = datetime.now(timezone.utc)
# Set the expiration time
expiration_time = ini_time_for_now + timedelta(minutes=15)

signed_url = blob.generate_signed_url(expiration=expiration_time, method='POST',
                                          version='v4')

это работает и URL возвращается JS клиенту, правильно установленный в конфигурации FilePond.

Моя конфигурация CORS следующая:

[
  {
    "origin": [
      "https://***.appspot.com"
    ],
    "method": [
      "GET", "PUT", "POST"
    ],
    "responseHeader": [
      "Content-Type", "Content-Length", "Access-Control-Allow-Origin", "x-goog-resumable"
    ],
    "maxAgeSeconds": 604800
  }
]

Я пробовал множество вариантов заголовков и т.д.

Как правильно настроить мое ведро, чтобы разрешить загрузку файла? Это ошибка конфигурации GCP bucket или что-то еще не так? Я также пробовал передавать

content_type='application/octet-stream',

to generate_signed_url.

Вернуться на верх