Header Ads

Como compactar imagens automaticamente no S3 com Lambda

Um dos maiores custos da AWS é a largura de banda — ela é cara, especialmente se o seu aplicativo depende da exibição de conteúdo. Compactar as imagens que você veicula pode reduzir sua conta significativamente, além de economizar dinheiro em custos de armazenamento.

Por que diminuir o tamanho?

A maneira mais simples de diminuir a largura de banda é diminuir o tamanho dos objetos que você está servindo com compactação e codificação. Ele também pode reduzir seus custos de armazenamento, o que pode economizar muito dinheiro ao longo do tempo. JPEG possui qualidade embutida no padrão; JPEGs codificados a 70% ou mais ainda são nítidos e quase indistinguíveis da qualidade de 100% (no qual nenhum JPEG destinado à distribuição na web deve ser codificado).

Além disso, se você estiver permitindo que os usuários enviem suas próprias imagens e não as estiver processando de alguma forma, você estará se abrindo para abusos de usuários que enviem vários gigabytes de fotos gigantescas e diminuindo a velocidade abaixo do seu aplicativo.

A AWS não tem uma ferramenta incorporada para fazer isso, então você terá que usar Lambda, o serviço da AWS para executar código em resposta a gatilhos sem provisionar servidores. Se você quiser codificar vídeo também, a AWS tem um serviço para isso, pois é uma tarefa que consome mais CPU.

Primeiros passos

Vá para o Lambda Management Console e clique em “ Criar função. ”

Felizmente, já existe um aplicativo pré-construído no repositório de aplicativos sem servidor da Lambda que pode lidar com a compactação básica de imagens e é perfeito para essa tarefa. Selecione “ Procurar repositório de aplicativos sem servidor. ”

Em seguida, pesquise “ compactar ” por evanchiu:

Este aplicativo usa transformações, que possui um balde S3 e observa-o para arquivos carregados. Quando um arquivo é carregado, a função é executada, compacta a imagem e a coloca em um intervalo de destino.

O depósito de entrada é criado pela função, mas o depósito de saída precisará ser criado no S3 Management Console:

Então, de volta ao Lambda Console, digite o nome do seu intervalo de destino nas configurações do aplicativo e, a seguir, dê um nome para o intervalo de origem que será criado. Certifique-se de que isso ainda não exista, pois o aplicativo deve ser o proprietário do intervalo.

Você pode especificar a qualidade JPEG aqui. Embora 70% ou mais deva ser um bom número, você pode fazer seus próprios testes para ver o que funciona melhor para seu aplicativo.

Clique em “ Implementar, ” e o aplicativo deve estar instalado e funcionando. Em alguns minutos, você verá o intervalo de origem recém-criado de propriedade do aplicativo. Se você carregar uma imagem nele, verá rapidamente a imagem compactada criada no intervalo de destino.

Se desejar modificar o aplicativo ou adicionar sua própria funcionalidade, você pode fazer isso clicando no link “ Funções ” guia à direita:

Aqui, você também pode modificar os gatilhos que fazem com que a função seja executada e editar as configurações definidas ao criar a função.

Via: How to Geek

Nenhum comentário