Использование библиотеки Node.js для создания подписанного URL и без проблем выгрузки файлов из Chrome на локальный компьютер и в производство. Но проблема CORS появляется при отправке запроса PUT от Safari, как на рабочем столе (v13.0.5), так и iOS, поэтому пока нет проблем с Chrome на Ma c. Там написано Origin https://website.com is not allowed by Acess-Control-Allow-Origin
Я почти уверен, что это связано с тем, что Safari отправляет запрос. Я дважды проверил мой API, чтобы сгенерировать URL, в котором есть все нужные параметры (соответствующий тип контента с клиентом), и он также работает на Chrome. Запрос PUT отправляется с использованием fetch()
.
. Попытался обновить конфигурацию CCS GCS с помощью gsutil , но сафари по-прежнему жаловаться, что источник не разрешен, даже сейчас он не работает на Chrome без подстановочный знак на origin
и responseHeader
. Кто-то упоминал в inte rnet Chrome нормально с подстановочными знаками, но Safari ожидает, что заголовки / происхождение будут явными, но не может выяснить, какие заголовки требуются. Пробовали различные варианты для responseHeader
, такие как Acess-Control-Allow-Origin , origin , Origin , x-goog-resumable .
[
{
"origin": ["https://website.com"],
"responseHeader": ["Content-Length", "Content-Type", "Date", "Server", "Transfer-Encoding", "X-GUploader-UploadID", "X-Google-Trace"],
"method": ["GET", "HEAD", "POST", "PUT"],
"maxAgeSeconds": 3000
}
]
У меня есть другой проект, который запускает ту же настройку и не имеет проблем, единственное отличие, вероятно, версия @google-cloud/storage
npm и использование version: 'v4'
при генерации getSignedUrl()
.
На inte rnet найдены несколько слов, говорящих об использовании https://bucket.storage.googleapis
вместо https://storage.googleapis/bucket
, но безрезультатно.