Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

firebird

Streaming a partir de outra URL

Recommended Posts

Fala galera, tudo bom?

 

sou novo tanto neste fórum quanto no mundo .NET, e estou com uma dúvida que vem me tirando as noites de sono....rs

 

Digamos que eu tenha o Servidor A e o Servidor B...

 

O usuário, quando acessa meu sistema, acessa a partir do Servidor B...mas, alguns arquivos anexos encontram-se armazenados no Servidor A, que tem conteúdo atualizado diariamente.

 

Quando o usuário precisa baixar um arquivo do Servidor A, este arquivo é salvo temporariamente no Servidor B e um link de download é disponibilizado ao cliente.

 

entretanto, (agora vem a bucha..rs) alguns arquivos são extremamente grandes, oq torna a rotina de salvar os arquivos no Servidor B impraticável.

e, (outra bucha...rs) os servidores não estão na mesma rede, eu só consigo acessar os arquivos do Servidor A via HTTP, e este endereço HTTP não pode ser informado ao cliente.

 

 

Pergunta:

- Há alguma forma de, a medida que os dados vão sendo baixados do Servidor A para o Servidor B, os mesmo já sejam repassados ao Cliente como forma de streaming, evitando assim que eu salve o arquivo em disco e economizando tempo do usuário sem fazê-lo esperar pelo tempo de download do servidor?

 

gente...

 

mesmo tendo perguntado aqui, não parei minhas buscas pelo google...

 

constatei que oq eu preciso é uma função semelhante a Response.TransmitFile(FilePath), mas que, ao invés de receber um caminho absoluto para o arquivo, recebe um endereço virtual. Algo parecido com:

 

Response.TransmitFile("http://www.ServidorA.com.br/anexos/prestacaoDeServicos.pdf"); //Exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a única maneira do ServidorB encontrar o ServidorA é por HTTP?

Acho que você nao vai conseguir usando HTTP, já pensou em colocar em um FTP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu não tenho domínio sobre o Servidor A...por isso não posso montar um FTP.

 

pensei em uma solução que não acho tao bacana, mas funcionaria.

 

seria, ao invés de uma página em ASP.NET, um aplicativo Desktop em C# (minha linguagem preferida, mas poderia ser em VB.NET, etc...), assim, eu conseguiria fazer esse trajeto sem ter que armazenar o arquivo no servidorB, retirando do servidorA e armazenando direto na máquina do cliente.

 

entretanto, se houvesse uma forma de fazer em ASP.NET, eu preferiria.

 

 

 

 

eu sei que se, pelo servidorB, eu iniciar o download do arquivo que se encontra no servidorA, eu consigo formar um stream,

oq eu não sei se é viável e se funcionaria, seria jogar o stream pro cliente a medida que os dados são baixados.

 

Ou seja, eu inicio o download, monto um buffer, entro em um loop e a medida que os dados são baixados, os mesmo são jogados ao cliente. Dessa forma, teoricamente, eu tenho no máximo o tamanho do buffer armazenado em servidor.

 

mas, não sei se essa solução é viável, ou se funcionaria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.