[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