Manipulação de arquivo em um servidor protegido por senha

7 respostas
E

Tenho uma aplicação que precisa acessar uma imagem que esta em um servidor que é protegido por senha.

Tenho que manipular esta imagem, vou gravá-la em um banco de dados, quando dou um new File(endereço), ele não consegue abrir a mesma porque ela esta em um outro servidor e este é protegido por senha. Quando eu acesso esse servidor pelo windows explorer e digito a senha de rede lá, a partir daí eu consigo fazer o processo acima com a imagem.

Dúvida: teria uma outra forma de trabalhar com esta imagem? Tem como simular uma conexão com o servidor onde está a imagem para liberar o meu acesso a ela?

7 Respostas

M

No caso sua imagem esta em rede em outro servidor, e vc quer acessa-la de uma maquina cliente e manipulala?? Que viagem. O correto a fazer nesse caso é voce fazer o download da imagem atravez da sua aplicacao, utilizando socket, apos receber ela vc poderá manipula-la. O que vc ta tentando fazer é acessar o arquivo utilizando o recurso de compartilhamento do windows, eu nao creio que seja uma boa solucao. Tente criar tipo um servidor de arquivos nessa maquina que contem a imagem, para vc poder recupera-la.

E

Bom mizael86.

O que eu preciso é gravar esta imagem, que está em um outro servidor, em um banco de dados.

Qual a melhor forma de fazer isso?

T

Você pode usar uma de duas coisas:

  • Se a sua aplicação pode ser iniciada pelo usuário (em vez de ser um serviço) e você sabe de antemão que servidor será acessado pela sua aplicação, então você pode acessar manualmente o tal arquivo usando um new File mesmo, mas você precisa antes de iniciar sua aplicação de mapear um acesso para o tal arquivo que deve ser acessado com senha.

Digamos que o arquivo x.jpg fique no servidor e share \serv\imgs , diretório abc\def.

Então o jeito de você acessar o arquivo seria: “\serv\imgs\abc\def\x.jpg”

Para você poder acessar o tal arquivo, o programa deve poder ter um acesso com usuário e senha. Nesse caso, você pode abrir uma linha de comando antes de iniciar o programa, e manualmente tentar fazer o seguinte:

net use /user:dominio\usuario \serv\imgs * /persistent:yes

Ele irá solicitar a senha, e então, se você conseguir efetuar corretamente o “use”, você pode iniciar seu programa sem que seja necessário fornecer novamente o usuário e a senha.

Acho que dá para passar a senha na linha de comando se você trocar o “*” pela senha, mas não tenho certeza se funciona.

  • A outra alternativa é usar o jcifs, mas não sei se funciona direito para sua instalação de rede.
M

Como voce sabe da existencia dela na sua aplicação?? Explique melhor pq esse arquivo ta em outra maquina, que maquina é essa. Sua aplicacao é desktop ou web? Essa maquina que contem a imagem é um servidor? Que sistema ela roda? Windows, linux…?

M

thingol, boa, mais isso amarra o usuario a utilizar serviço do windows. Eu nao entendi o que ele realmente quer, mais puxar uma imagem do servidor para manipula-la, seria mais coerente fazer tipo um “download” dela utilizando algum servidor.

E

Bom thingol, eu vou fazer uns testes com as informações que me passou.

Mizael86, meu sistema é web, eu sei que a foto existe porque eu tenho um flag no bd que indica a existência dela. A minha aplicação está hospedada em um servidor linux e a foto está em outro servidor que é windows.

T

Como sua aplicação está funcionando sob o Linux, e você precisa acessar um arquivo que está em um share do Windows, você tem 2 alternativas:

  • Você pode montar o diretório que requer a senha, usando Samba. Passe os parâmetros adequados para a montagem do diretório (usuário, senha) e então acesse o arquivo como se fosse um arquivo normal. Consulte algum Linux-man para saber exatamente como se faz isso (para esse mount ficar permanente, por exemplo).
  • Ou você pode usar o jcifs, mas isso não funciona direito em algumas instalações de redes Windows.
Criado 16 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 7
Participantes 3