Arquivo de armazenamento de estratégias para uma hospedagem de web site

StackOverflow https://stackoverflow.com/questions/80561

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu estou indo para hospedagem de arquivos que o usuário envia.Eu preciso pegar alguns dados a partir do ficheiro e, em seguida, movê-lo para algum diretório.

Há dois pontos de interesse para o tempo de vida do arquivo.A primeira é quando os dados estão a ser abstraídos e a segunda é quando o arquivo é arquivado para que possa ser compartilhado.

Quando os dados estão sendo abstraída, já pensei que renomear o arquivo para algo exclusivo ou acrescentar uma única seqüência de caracteres de nome de arquivo para mantê-lo de substituição de outros arquivos existentes.

Quando o arquivo vai ser arquivados, eu pensei em três estratégias.Uma é manter todos os arquivos enviados a partir de uma certa dados em uma pasta.(2006/set/04, 2008/jan/05) e A outra é a de manter uma pasta e manter a preenchê-lo até algumas número máximo de arquivos que eu quero guardar na pasta e, em seguida, criar uma outra (/folder001/, /folder002/, /folder003/, etc..).Outra é criar subpastas, uma vez que alcançar um determinado limite.Assim como o (/j/jd/jde/jdelator) eu vi isso no unix não tiver certeza de como explicar isso.

As perguntas que eu tenho é que tipo de estratégias de vocês têm encontrado útil ou usado?

Foi útil?

Solução

Quando os dados estão sendo abstraída, eu escolheria algo como : filename + millisec(); É improvável que duas chamadas para millisec será o mesmo, e o nome do arquivo é mais amigável ao acessar.

A data de estratégia pode ser conveniente se você decidir remover o antigo e arquivos não utilizados :você só tem que começar a 2006 pasta e remover tudo o que não tenha sido acessado no último ano, de acordo com o seu registo.Isso também pode ser uma boa indicação para o seu blog, como eles vão saber se é um novo arquivo ou não.O folderXYZ é apenas uma variante de um presente, substituindo data com um tag de cada N arquivos.

O limite de subpastas ajuda você a manter o número de entradas de seus diretórios de baixa, então o acesso é mais rápido.Observe que esta solução requer, por vezes, mover arquivos (e, em seguida, quebrar alguns url, se não mapeados) quando um diretório em particular, cresce.

Outra possibilidade é usar um DB com UID correspondente ao nome do arquivo local, e o acesso a arquivos através de http://server.com/UID/filename.txt .Desta forma, o usuário salva o arquivo como "filename.txt" o que é conveniente para ele, e você sabe que com a URL de onde encontrar o arquivo (usando o banco de dados para transformar o UIDO de localização).Observe que o UIDO pode ser uma soma de verificação (MD5, SHA-1) para tratar de duplicatas do mesmo arquivo.

Outras dicas

Eu voto com o guid de um banco de dados e, em seguida, use o cabeçalho Content-Disposition o nome para o nome do arquivo original, se necessário.Uma coisa que eu defendo é que as pastas que você utiliza são armazenados fora da raiz da web;você não deseja que os usuários fazer upload de arquivos em suas pastas de aplicativo.

Eu usei uma base de dados relacional que etiquetas de ID (int) para os uuids são o nome dos arquivos.Desta forma, não importa como eles estão no disco.Isso me ajuda a ocultar os arquivos.Também, que eu possa usar Une-se ao "renomear" o arquivo de forma arbitrária.Também, eu posso usar o arquivo diferentes "nomes". Tudo depende do seu aplicativo de e onde ele está sendo executado.

Embora isso depende de sua aplicação e etc., Eu sugiro manter arquivo de repositório de esquema muito simples para o agora, e decidir sobre a mais elaborada estratégia mais tarde.Em outras palavras, você faz uma espécie de "conseguiu caos" por um tempo;estrutura e estratégia virá mais tarde, quando você vai descobrir todos os requisitos de domínio e especificidades.Mantendo simples, você pode mudar tudo facilmente.

De qualquer maneira, a mudança é inevitável, a melhor coisa que você pode fazer agora é escolher alguma estratégia e para documentar tudo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top