Como posso atualizar arquivos no CDN da Amazon (CloudFront)?
-
23-08-2019 - |
Pergunta
Existe alguma maneira para atualizar arquivos armazenados no Amazon CloudFront (serviço CDN da Amazon)? Parece que não tomará nenhuma atualização de um arquivo que fazemos (por exemplo, remover o arquivo e armazenar o novo com o mesmo nome de arquivo como antes). Eu tenho que acionar explicitamente um processo de atualização para remover os arquivos dos servidores de borda para obter o novo conteúdo do arquivo publicado?
Obrigado por sua ajuda
Solução
Amazon adicionou um recurso de invalidação. Este é API Referência .
Request Sample da Referência API:
POST /2010-08-01/distribution/[distribution ID]/invalidation HTTP/1.0
Host: cloudfront.amazonaws.com
Authorization: [AWS authentication string]
Content-Type: text/xml
<InvalidationBatch>
<Path>/image1.jpg</Path>
<Path>/image2.jpg</Path>
<Path>/videos/movie.flv</Path>
<CallerReference>my-batch</CallerReference>
</InvalidationBatch>
Outras dicas
Aqui está como eu fazer isso usando o painel de controle CloudFront.
- Selecionar CloudFront da lista de serviços.
- Certifique-se de Distribuições a partir do canto superior esquerdo é selecionado.
- Em seguida, clique no link para a distribuição associado da lista (sob id).
- Selecione o Invalidações .
- Clique em Criar Invalidação botão e digite o local dos arquivos que você deseja ser invalidado (atualizado).
Por exemplo:
- Em seguida, clique no botão Invalidate botão e você deve ver agora InProgress em status.
Geralmente, leva 10 a 15 minutos para completar a sua invalidação pedido, dependendo do tamanho do seu pedido.
Uma vez que diz concluída, você é bom para ir.
Dica: Depois de ter criado algumas invalidations se você voltar e necessidade de invalidar os mesmos arquivos usar a caixa de seleção e o Copiar link estará disponível tornando-o ainda mais rápido.
Set TTL = 1 hora e substituir
http://developer.amazonwebservices.com/connect/ann.jspa ? annID = 655
Fazer download da versão Cloudberry Explorador freeware para fazer isso em arquivos individuais: http://blog.cloudberrylab.com/2010/08 /how-to-manage-cloudfront-object.html
Cyberduck para Mac e Windows fornece uma interface de usuário para o objeto de invalidação. Consulte http://trac.cyberduck.ch/wiki/help/en/howto / CloudFront .
Eu me lembro de ver isso em serverfault já, mas aqui está a resposta:
Por "Amazon CDN" Eu suponho que você quer dizer "CloudFront"?
É armazenada em cache, por isso, se você precisar dele para ser atualizado agora (em oposição a "nova versão será visível em 24 horas") você terá que escolher um novo nome. Em vez de "logo.png", use "logo.png - 0", e, em seguida, atualizá-lo usando "logo.png - 1"., E alterar o seu html para apontar para que
Não há nenhuma maneira de "lavar" o Amazon CloudFront.
Editar : Este foi não é possível, que é agora. Ver comentários a esta resposta.
ofertas de CloudFront interface de utilizador isso sob o botão [i]> "Configurações de distribuição", aba "Invalidações": https://console.aws.amazon.com/cloudfront/home#distribution-settings
Em Ruby, usando o gem nevoeiro
AWS_ACCESS_KEY = ENV['AWS_ACCESS_KEY_ID']
AWS_SECRET_KEY = ENV['AWS_SECRET_ACCESS_KEY']
AWS_DISTRIBUTION_ID = ENV['AWS_DISTRIBUTION_ID']
conn = Fog::CDN.new(
:provider => 'AWS',
:aws_access_key_id => AWS_ACCESS_KEY,
:aws_secret_access_key => AWS_SECRET_KEY
)
images = ['/path/to/image1.jpg', '/path/to/another/image2.jpg']
conn.post_invalidation AWS_DISTRIBUTION_ID, images
mesmo em invalidação, ainda leva 5-10 minutos para a invalidação de processo e atualização em todos os servidores de borda amazon
CrossFTP para Win, Mac e Linux fornece uma interface de usuário para CloudFront invalidação, verificar isso para mais detalhes: http://crossftp.blogspot.com/2013/07/cloudfront-invalidation-with-crossftp.html