[FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache
"Fábio Jr."
fjuniorlista em gmail.com
Quarta Outubro 7 10:46:01 BRT 2009
Olá pessoal, desculpem off, mas gostaria de algumas opiniões já que o
servidor em questão roda FreeBSD.
Tenho um servidor que serve conteúdo estático, sendo que grande parte
deste conteúdo são imagens. Estas imagens estão todas armazenadas em um
diretório, sendo que há aproximadamente 4 milhões de imagens dentro
deste diretório.
Acredito que esta estrutura de armazenamento seja, a médio prazo, pouco
segura e nada dinâmica, tornando escalabilidade e backup praticamente
impossível via rede, principalmente pelo fato do servidor estar
hospedado em outro país.
Pensando em uma maneira de resolver este problema, cheguei a uma
possibilidade, mas que pode não ser a solução correta. Minha sugestão é
a seguinte:
Dividir estas imagens, em diretórios baseando-se nos 3 últimos números
do nome do arquivo.( Os arquivos são nomeados em ordem crescente no
formato {número}.png ) Ex.:
O caminho absoluto do arquivo 123891.png no servidor é
/imagens/8/91/123891.png. O arquivo 456891.png, também ficará nesta
mesma pasta. Porém o arquivo 123456.png ficará armazenado na pasta
/imagens/4/56/123456.png.
A estrutura se baseia sempre na centena do nome do arquivo (891), sendo
que o número da centena (8) é a pasta pai, e os números da dezena e
unidade (91) são o nome da pasta filho.
1ª questão: existe uma maneira de, fazendo uma requisição para
http://servidor.com.br/imagens/123456.png, o Apache redirecionar ou
tratar essa URL para o caminho correto, através de uma expressão regular
utilizando somente um AliasMatch? (pelas minhas pesquisas na
documentação do Apache não consegui fazê-lo)
2ª questão: gostaria de sugestões de como estruturar melhor os arquivos,
para obter uma melhor performance. Outras soluções possíveis seria a
criação de diretórios ainda mais específicos ou a migração para um
serviço de storage distribuído.
Obrigado
[]s
Fábio Jr.
Mais detalhes sobre a lista de discussão freebsd