Набор пользовательских метаданных Google Cloud Bucket, но не возвращается в запросе HTTP - PullRequest
0 голосов
/ 27 октября 2019

Мне удалось добавить пользовательские метаданные в мой общедоступный файл, хранящийся в Google Cloud Bucket, но этот пользовательский заголовок не возвращается в ответе HTTP.

На рисунке ниже показано, что мои пользовательские метаданные (X-Content-Type-Options) был добавлен в мой объект. Когда я запрашиваю этот файл в своем браузере, этот пользовательский заголовок не является частью ответа.

Google Object metadata

Ответы [ 2 ]

2 голосов
/ 27 октября 2019

Можно добавить пользовательские заголовки, но они будут иметь префикс x-goog-meta-. AWS S3 имеет то же ограничение. Похоже, это связано с соображениями безопасности. Самое простое решение, которое я нашел для преодоления этого ограничения, - это использование таких преимуществ, как AWS Lambda Edge или Cloudflare Edge Workers. Идея состоит в том, чтобы переписать заголовки на лету. В моем случае это означало бы перехват всех заголовков, начинающихся с x-goog-meta-, и удаление этого префикса.

Вот статья того, кто сделал это с AWS Lambda Edge: https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2

0 голосов
/ 27 октября 2019

Вы можете использовать x-goog-meta- для установки метаданных для объекта (некоторые примеры здесь для добавления отдельных метаданных или для добавления их в операции cp) .

Пользовательские метаданные можно получить с помощью команды gsutil и параметра -L. Вы также можете восстановить пользовательские метаданные с помощью HTTP-запроса API (попробуйте здесь) .

Но пользовательские метаданные не предоставляются в вашем браузере при доступе к объекту черезURL https://storage.cloud.google.com/.... Необходимо создать прокси, который запрашивает объект с помощью API-хранилища (для получения содержимого и пользовательских метаданных) и который предоставляет объекту ожидаемые метаданные.

...