Pergunta

Eu estou construindo um aplicativo que precisa para usar um servidor web como um sistema de arquivos. Especificamente, a solução ideal seria:

  • Um componente do lado do servidor que permitiria, via HTTP, abertura (bloqueio), leitura, escrita, buscando e truncar um arquivo. Eu preciso ser capaz de bloquear vários arquivos simultaneamente. Eu preciso disso para ser executado em qualquer um dos anfitriões web padrão lá fora, por isso deve ser executado em cima do IIS ou Apache, usando scripts do lado do servidor (Web Services, PHP, etc)
  • A interface do cliente para isso que eu entregá-lo a URI, e ela abre e funciona como um arquivo. Meu aplicativo cliente está em .NET, portanto o ideal seria a API do cliente iria implementar uma subclasse FileSteam.

A razão que eu preciso disso é que eu tenho arquivos em vez de grande porte que vai estar sentado em um host. Eu preciso ler partes dos arquivos (usando buscar), truncado, e acrescentar ao fim. Download e upload o arquivo inteiro é muito largura de banda intensiva. Além disso, eu preciso bloquear vários arquivos ao mesmo tempo.

As minhas perguntas:

  • Será que tal coisa existe?
  • Se não, por que não? Será que isso não parece ser um serviço muito útil?

Parece que um tal componente me permitiria usar qualquer empresa de hospedagem lá fora, como um servidor de arquivos de rede. Isso parece útil, não?

Obrigado por sua ajuda!

Eric

Foi útil?

Solução

Parece que você está procurando é um WebDAV servidor.

Outras dicas

Versão longa
hosts da Web foram projetados originalmente para enviar usuário tothe conteúdo em conexão individual. Todo o conceito de sessões é um fenômeno (palavra-chave: relativamente) relativamente moderna - a maioria dos quais são simplesmente métodos para rastrear conexões individuais do mesmo usuário. Mais frequentemente do que não, é só dar o impressão que você ainda está conectado ao servidor, quando na realidade você está conectado, baixado, desconectado - e fazer a mesma conexão / download / desligar cada vez você tomar uma ação.

Coisas como WebDav que são tack-on adições ao padrão HTTP diálogo que permitem especialmente concebido software ter uma comunicação mais complexa via HTTP para um servidor. uso muito comum para WebDAV é Subversion, iCal (suporte de calendário), etc -. estes permitem única conexão upload de dados

O que você está falando é ter um serviço de sistema de arquivos baseado em sessão. Enquanto parece que seria um bom serviço, eu suspeito que não foi implementado devido à enorme complexidade e perigo superam os benefícios. Por exemplo, não só seria um serviço como esse precisa se preocupar com questões padronizadas do sistema de arquivos (autorização, permissões de arquivo, bloqueio, tempos de espera, etc.), mas agora também tem que se preocupar com as complexidades de estar na web (autenticação, sessão de rastreamento, desconecta, ataques de repetição, DDoS, etc.). Por exemplo, o que acontece se um cliente bloqueia um arquivo, em seguida, cai offline? A estadia arquivo bloqueado até que a reinicialização do servidor? Se não, quando você desbloquear automaticamente o arquivo? O que acontece se os gatilhos auto-desbloquear e o armário original vem novamente on-line? Você forçar tudo para ser feito em uma única conexão para compensar? O que acontece se for desconectado no meio de uma sessão?

Eles são apenas algumas coisas que você tem que se preocupar. Eu divagava por muito mais tempo do que eu pretendia, mas a linha de fundo é que ...

Versão Curta
Você certamente pode usar o WebDAV para implementar esta, que vai exigir que você construa uma biblioteca do lado do servidor. No entanto, enquanto o seu não impossível, você está em um mundo de dor como projetado. Eu sugiro simplificando o design de modo que você não precisa dele para agir como um sistema de arquivos muito.

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