облачное хранилище CORS - PullRequest
       20

облачное хранилище CORS

0 голосов
/ 10 сентября 2018

Я экспортировал карту из Google Earth Engine в хранилище облачного хранилища с открытым доступом (allUsers). Формат в корзине - это листы карты с расширениями .png.

Я также установил свои настройки CORS с помощью gsutil следующим образом:

[
    {
      "origin": ["*"],
      "responseHeader": ["Authorization", "Content-Range", "Accept", "Content-Type", "Origin", "Range"],
      "method": ["GET"],
      "maxAgeSeconds": 300
    }
]

Но, пытаясь получить доступ к этим плиткам карты (с помощью Leaflet tileLayer), я получаю CORB (перекрестную блокировку чтения) в инструментах разработчика Chrome, и ничего не отображается.

Мои заголовки ответа в Chrome DT показывают следующее:

cache-control: no-cache, no-store, max-age=0, must-revalidate
content-type: text/html; charset=utf-8
expires: Mon, 01 Jan 1990 00:00:00 GMT

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Наконец-то понял это. В Leaflet tileLayer должен иметь следующую форму с tms = false и без расширения .png:

var yourTileLayer = L.tileLayer('https://storage.googleapis.com/yourbucket/yourobject/{z}/{x}/{y}',{tms=false}).addToMap();
0 голосов
/ 10 сентября 2018

Если вы хотите сделать все хранилище общедоступным для чтения, вам необходимо предоставить политики IAM просто запустите:

gsutil iam ch allUsers:objectViewer gs://youBucketName

Обновление: Точка, которую вы должны использовать:

"https://storage.googleapis.com/bucketName/ObjectName"

Из документации :

Все запросы к URI-адресу storage.cloud.google.com требуют аутентификации. Это применимо даже тогда, когда у всех пользователей есть разрешение на доступ к объекту. Если вы хотите, чтобы пользователи загружали анонимно доступные объекты без аутентификации, используйте URI storage.googleapis.com, задокументированный в запросах Direct API. Подробности и примеры см. В разделе Доступ к публичным данным.

Вы используете напрямую https://console.cloud.google.com/storage, и поэтому вы столкнетесь с этой ошибкой

Пример:

У вас есть: https://console.cloud.google.com/storage/browser/logs1tiles/centralKansas/8/58/99

Должно быть: https://storage.googleapis.com/logs1tiles/centralKansas/8/58/99

...