Objeto público de armazenamento em nuvem do Google em cache no lado do servidor

1

Tenho um intervalo do Google com permissão de leitura para allUsers , mas não está configurado como site (nem arquivamento). Eu experimento um cache de objeto mesmo quando eu envio solicitações com no-cache control:

gsutil cp test gs://mybucket
# test has default meta Cache-Control: public, max-age=3600
wget -S --no-cache http://storage.googleapis.com/mybucket/test
# OK saved as test
gsutil rm gs://mybucket/test
wget -S --no-cache http://storage.googleapis.com/mybucket/test
# Saved as test.1, why?

Eu executei o wget --no-cache após a remoção do objeto várias vezes. Às vezes, ele retornou o arquivo test armazenado em cache, às vezes, de maneira adequada, com o HTTP 404. Eu executei os comandos de um servidor Ubuntu do Google Compute Engine, com no cache configurado. Eu tenho os mesmos resultados de algumas máquinas fora do Google Cloud.

IMO o servidor deve retornar HTTP 404 sempre . Existe um bug na infraestrutura do Google Cloud?

Nota: quando eu defino o objeto meta Cache-Control:no-cache , ele funciona como esperado. Mas eu acho que o servidor nunca deve retornar o conteúdo em cache para o wget --no-cache , mesmo quando ele tem o padrão meta Cache-Control:no-cache

    
por xmedeko 09.05.2017 / 08:51

1 resposta

2

Você está correto. Atualmente, o Google Cloud Storage ignora solicitações de clientes anônimos para pular o cache.

Você pode contornar isso configurando explicitamente uma política de controle de cache diferente no objeto, solicitando uma geração específica de um objeto ou fazendo solicitações autorizadas.

    
por 09.05.2017 / 21:10