Как установить контроль кеша в хранилище Google из Java

Я полагать вижу некоторые случаи в Google Storage, когда список папок после удаления всех больших двоичных объектов в папке по-прежнему показывает, что они существуют, даже после ожидания в течение нескольких секунд. Это случается довольно редко, поэтому трудно определить. Хотя я не знаю основной причины, я думаю, что кэширование может вызвать этот эффект, тем более что мои тесты хранилища Google выполняются удаленно, а не на виртуальной машине GCP.

Таким образом, я надеюсь, что установка метаданных Cache-control на «no-cache» решит проблему. Но я не могу найти, как это сделать из клиента Java SDK. Один ответ SO имеет решение только для ссылки, которое не работает: Как установить Cache-Control в Java при вставке файла в корзину GS?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

«Кэш управления» — это просто метаданные об объекте. В Java у вас есть этот образец в документация.

Спасибо ... но я думаю, что для надежной работы мне нужно установить метаданные при создании объекта? Как это делается?

Wheezil 21.03.2022 16:09

Вы создаете объект в своем Java-коде? Если это так, вы можете добавить этот фрагмент кода для обновления метаданных. Если нет, вы можете поймать событие создания нового объекта в корзине и добавить функцию для этого события, которая добавит элемент управления кешем в файл. В противном случае, объясните больше вашего контекста/блокировщиков

guillaume blaquiere 21.03.2022 16:34

Спасибо, Гийом. Звучит ли моя теория правдоподобно, учитывая проблему с устаревшим листингом? Я действительно просто хочу решить эту проблему, и это единственное, о чем я мог думать. Могут ли быть другие причины, по которым после удаления блобов они все еще появляются в списке? Это настолько редкое явление, что его трудно проверить.

Wheezil 23.03.2022 08:50

У вас есть определение согласованности здесь. Возможно, в API есть кеш, но обычно процесс удаления строго согласован.

guillaume blaquiere 23.03.2022 10:51

Единственная часть, которая меня беспокоит, это утверждение: «Кэшированные объекты, доступные для публичного чтения, могут не демонстрировать строгой согласованности». Это относится только к объектам, которые действительно общедоступны, и для их чтения не требуются учетные данные?

Wheezil 23.03.2022 13:59

Не ясно. Я хотел бы сказать да, но я не уверен

guillaume blaquiere 23.03.2022 17:30

Другие вопросы по теме