2016-08-25 2 views
1

У меня возникла проблема при обновлении моего json-файла, который находится в ведре, и будет вызываться на html-странице. Я обновляю свой json-файл каждые 5 минут из командной строки, и это можно сделать. Однако, несмотря на то, что сам файл json обновляется и становится общедоступным, общедоступная ссылка по-прежнему показывает старый контент, а не новый контент.обновленный файл json, не отображающийся в общедоступной ссылке

Если я нажимаю на json-файл, я вижу, что содержимое было изменено, но если я нажму ссылку «общедоступный», содержимое по-прежнему остается не обновленным.

Кто-нибудь знает, сколько времени требуется для облачного хранилища Google для загрузки буфера, чтобы новый контент отображался в общедоступной ссылке?

Или есть ли способ обновить json-файл и мгновенно получить общедоступную ссылку?

Спасибо!

ответ

2

По умолчанию общедоступные объекты, к которым обращаются анонимно, имеют заголовок управления кешем, установленный на 1 час. Вы можете переопределить это при загрузке нового объекта, явно установив метаданные cacheControl на что-то другое.

Если вы используете GSUtil для загрузки объекта, вы можете сделать это следующим образом:

gsutil -h "Cache-Control:no-cache, max-age=0" \ 
    cp -a public-read myfile.json gs://mybucket 
+0

Спасибо, Брэндон.. Я думаю, что ваш ответ полностью имеет смысл, это то, сколько времени требуется, чтобы получить обновленную общедоступную ссылку, и я использую gsutil для обновления json-файла. Тем не менее, я попробовал ваш метод, установив Cache-Control, но все равно не повезло. даже я удаляю файл и загружаю новый файл с тем же именем, все еще не работая. Позвольте мне поиграть и посмотреть, смогу ли я получить какое-то решение из вашего ответа. – HaipengSu

+0

заставил его работать, спасибо вам так много ~~~~ потратил несколько часов на это, полностью застрял в нем. Спасибо!! – HaipengSu

+0

Да, я готов поспорить, вам потребовалось ровно час, чтобы он начал работать для вас :) –