4
respostas

arquivos de imagens (como diminuir tráfego)

Boa tarde, Estou desenvolvendo um sistema que é será totalmente na nuvem. Nesse sistema o usuário poderá gravar imagens no meu servidor (em alta resolução e em baixa dependendo da função que ele utiliza).

Eu estou no momento usando um servidor da amazon para hospedar o sistema (que ainda está em testes), mas mesmo nos meus testes o nro de dados trafegados por causa das imagens está bem grande. Gostaria de saber se há alguma técnica ou framework ou algo que eu posso fazer para diminuir o gasto com hospedagem/servidor nesse meu sistema, pois gravar essas imagens e poder acessá-las no sistema depois é parte muito importante do sistema proposto.

Se puderem me ajudar ficarei grato.

Fico no aguardo.

4 respostas

A própria amazon disponibiliza o S3, que é apenas para armazenagem de arquivos. Depois você consegue linkar o cloud front para a entrega com velocidade desse conteudo.

Talvez o TinyPNG/TinyJPG , possa te auxiliar , diminuindo o tamanho dos arquivos

@Vinicius, Sim, quando fechei com a amazon eles me informaram desse serviço. Mas a minha pergunta é mais porque eles cobram por dados trafegados, e eu queria saber se tem alguma forma de eu gastar menos com servidor para ter uma margem de lucro um pouco maior. Porque dependendo de como for o tráfego de dados depois que mais clientes estiverem usando o sistema eu vou acabar gastando muito com infra de servidor (amazon).

Não sei se expliquei de forma clara (pq pra mim ainda é meio obscuro essa parte..rsrsr)

@Bruno Rodrigues, vou pesquisar sobre o Tiny que vc mandou.

Olá Roger,

pelo que eu entendi, o quê você precisa é exatamente a diminuição dos dados na hora de upload/download dos seus usuários porém mantendo a qualidade na hora de armazenar esses arquivos.

Se o requisito for esse mesmo, você precisa aumentar a compressão dos seus dados, utilizando uma biblioteca como o TinyPNG, ou comprimir as suas requisições HTTP.

A compressão direta da imagem será sempre mais eficiente que a compressão da requisição pois você usa a informação que aquele dado é de fato uma imagem. Por exemplo: seu cliente está fazendo upload de uma imagem. Nesse caso, você tem uma opção simples que é apenas configurar o seu servidor para comprimir todas as requisições de upload utilizando algum algoritmo como o GZIP, ou utilizar o HTTP/2 que já faz isso por padrão. Uma outra opção mais complexa é utilizar uma lógica no próprio cliente, como por exemplo um código javascript que faça a compressão da imagem antes de enviar ao seu servidor, comprimindo a imagem com uma alta eficiência antes mesmo de ser enviada pela rede.

Resumindo: Busque comprimir tanto os seus arquivos quanto as suas requisições, lembrando que a compressão dos arquivos é muito mais eficiente.