Dae galera… eu estou desenvolvendo um sistema que terá várias bases de dados, dependendo do usuário(perfil), ele é redirecionado para uma base especifica… a minha dúvida é… nesse sistema eu tenho um módulo de upload de arquivos… já está implementado a opção de upload na pasta do mesmo servidor… etal… como eu faria pra fazer o upload para uma pasta em outro servidor?? Seria a mesma idéia da base de dados… cada usuário tem um perfil e dependendo do perfil ele é redirecionado para uma base diferente… dae ele teria uma pasta tambem especifica dependendo do perfil…
Para uma pasta em um servidor eu passo o endereço assim: //home//sgd/ e se eu fosse referenciar uma pasta em outro servidor?? Como seria?? Teria que usar algum outro recurso para tal??
Estou utilizando Servlets, Jsp e Tomcat 5.5… não estou utilizando nenhum framework por decisão da empresa…
Abraço e aguardo respostas…
Fiquem com Deus!!
Por que não usa uma base só de Webdav para todos servidores?
Ou a base de arquivos precisa ficar separada também?
É assim… cadas setor terá uma base de dados separado… e uma pasta de arquivos também… dae terá um servidor geral onde rodará o sistema web e dele teria que ser gravado dependendo do perfil em uma base e uma pasta diferente… Para testes iniciais dentro do mesmo servidor… eu utilizaei o FileUpload da Jakarta… só que agora as pastas será distribuidas em varios servidores…
Abraço!!
Vc já pensou em usar ftp??
Cara… eu estava agora mesmo lendo sobre isso… mas o que tu acha que seria o ideal… eu jogar ele para um servidor e de la mandar o arquivo via ftp ou fazer tudo numa pancada só?? Porque quando eu faço upload do arquivo, um registro na base de dados tambem é criado… , eu não quero correr o risco de ter um registro na base mas não ter um arquivo na pasta… Será que da pra integrar o FileUpload com o envio via FTP?? Digo… com o FileUpload eu tenho um ou mais arquivos em memória… dae eu pegaria cada arquivo e daria um ftp nele… seria mais ou menos isso??
Abraço!!
Sem pensar muito no problema, vejo duas opções:
1 - Os arquivos de upload serem gravados numa pasta local mesmo. Você pode ter um programa instalado que monitora a pasta (não sei qual, mas deve existor algum) e de acordo com nome do arquivo (ou qualquer outra regra definida) copia o arquivo pro devido servidor. A desvantagem é que você terá uma depedência do programa que monitora a pasta e dos scripts de cópia. A vantagem é que seu sistema responderá mais rápido (?) e pode ter um backup central ou sei lá …
2 (acho que mais viável) Manter um serviço de FTP em cada servidor que hospedará os arquivos e efetuar a cópia via FTP.
flw,
Roger Leite
Deixa eu ver se entendí(2º opção), cada servidor teria um serviço FTP e ele copiaria o arquivo gravado… mas dae eu teria que gravar em uma pasta base no servidor da aplicação e os serviços de FTP vão buscar lá… seria isso?
É digamos assim, uma lógica tosca rapidinha de como poderia ser:
Você tem uma imagem e precisa enviar pra dois servidores por exemplo.
1 - faça um insert no banco que aponta o caminho pra qual(quais) servidor(servidores) de ftp você enviará.
2 - Guarde o id do registro que vc inseriu
3 - Faça o envio por ftp aos servidores
Se der algum problema no ftp vc pode ir no banco e deletar aquele registro pelo id, simulando assim uma espécie de transação aonde vc daria um rollback.
Desse jeito se posteriormente quisesse recuperar a imagem vai no banco e descobri aonde está, outro benefício é um controle mais rígido pq digamos que se alguém foi no servidor e deletou o arquivo no braço, na força bruta. O registro no banco vai estar lá como garantia que vc fez o upload do arquivo
- você teria que gravar o arquivo numa pasta local temporaria
- tentar enviar o arquivo via FTP para o servidor correto
- se obteve sucesso no envio,
- gravar as informações do arquivo no banco …
- apagar o arquivo da pasta temporaria
- caso não teve sucesso na copia via FTP, mandar exception ?
Os passos acima é para uma funcionalidade “genérica”, é claro que você deve mudá-la de acordo com sua necessidade.
Galera… valeu pelas respostas… claro que tem outras coisas que tem que ser analizadas mas no geral o que vcs indicaram pode ser uma solução boa… Provavelmente será feito isso mesmo…
Abraço e obrigado de novo!!
Fiquem com DEus!!
Se possível, depois de implementada, coloca a solução que usou e as dificuldades encontradas se alguma … e pra finalizar um Resolvido no assunto.
Aê Maicon, belas sugestões também! 8)
flw e bom código aê !
Roger Leite