Solução para compartilhar facilmente arquivos grandes com usuários não especializados em tecnologia?

1

Temos uma configuração de servidor no trabalho que gostaríamos de usar para trocar facilmente arquivos grandes com clientes conhecidos. Estamos pesquisando software para facilitar isso, mas somewhow digitando "hospedagem de arquivos grandes" no Google dá resultados questionáveis ..;)

Nós apresentamos os seguintes requisitos, e espero que qualquer um de vocês possa nos apontar a direção de uma solução que ofereça essa funcionalidade ou seja maleável às nossas necessidades.

  • O gerenciamento de sincronização / revisão não é uma preocupação, é principalmente uploads de arquivos grandes e individuais (até 1 GB) & downloads que precisaremos.

  • Gostaríamos de fazer os downloads expirarem & ser removido após um determinado número de dias / downloads (digamos 5 cada), para limitar a quantidade de limpeza que teríamos que fazer.

  • Os ficheiros de dados trocados por vezes contêm informações confidenciais, pelo que as URLs geradas devem ser aleatórias e não visíveis publicamente.

  • Nossos usuários são do tipo tecnicamente menos experiente, portanto, um simples formulário da Web seria melhor do que um cliente de desktop (porque também temos que oferecer suporte a uma combinação de sistemas operacionais).

  • Quanto ao uso do sistema, gostaríamos de enviar URLs aleatórios gerados para que eles enviassem os arquivos ou gerenciem o & expira usuários.

  • Funciona em um servidor Linux (Ubuntu) (nada relacionado a .Net, por favor)

Alguém sabe de software que se encaixa nos critérios acima? Já vimos alguns exemplos disso na comunidade científica, mas nada que pudéssemos usar diretamente.

Atenciosamente, Tim

Copiado dos comentários abaixo :

Meu problema com o ftp é a grande quantidade de sobrecarga na criação de usuários, direitos de configuração, implantação de clientes, mover arquivos e lembrar de depois excluir usuários, pastas, direitos etc.

O que estamos visualizando é mais tokens de uso único para projetos de execução curta do que clientes de retorno de longa duração com direitos apropriados.

    
por Tim 06.05.2010 / 10:22

7 respostas

2

Isso soa como um simples script PHP pode ser capaz de lidar com isso. Embora eu não saiba sobre tempos de espera, etc., se se trata de arquivos grandes.

O script pode funcionar da seguinte forma:

  • Se nenhum login for fornecido, mostre o formulário de login
  • Verifique este login em um banco de dados
  • Mostrar um seletor de arquivos simples
  • Carregue o arquivo em uma pasta / nome de arquivo gerados aleatoriamente e informe ao usuário sobre esse nome

As seguintes coisas adicionais seriam necessárias:

  • Administração do banco de dados de login
  • Um cronjob que exclui arquivos antigos
por 06.05.2010 / 10:40
1

The data files exchanged sometimes hold confidential information, so the URLs generated should be random and not publicly visible.

Isso é muito ruim. Se os dados forem realmente confidenciais, você não poderá confiar apenas no URL para impor a privacidade.

Que tal ftp ?

Ele suporta autenticação, você pode executar scripts para excluir dados antigos, eles estão disponíveis em todas as plataformas, e seu único problema seria escolher um cliente adequado para dizer aos seus usuários para usar.

    
por 06.05.2010 / 10:39
1

O FTP seria uma boa escolha, pois no lado do servidor você poderia configurar scripts para gerenciar seus arquivos conforme necessário. Seus clientes poderão acessar os arquivos usando a maioria dos navegadores da Web ou até mesmo o Windows Explorer. Você pode proteger com senha suas pastas ftp, o que dá alguma segurança, no entanto, as transferências de arquivos seriam claras. Além disso, muitos ambientes corporativos bloqueiam o FTP. Mas esta seria a rota mais simples e mais flexível.

Se você precisar de transferência segura de seus arquivos, o WebDav oferece uma experiência semelhante ao usuário final, mas você pode transferir arquivos com segurança por HTTPS, e os http e https têm menor probabilidade de serem bloqueados por seus clientes. O WebDav é executado sobre a maioria dos servidores web (Apache e IIS têm plug-ins disponíveis) e, como ele realmente dá acesso ao seu sistema de arquivos, você pode usar qualquer script ou função do sistema operacional para gerenciar seus arquivos automaticamente.

    
por 06.05.2010 / 10:49
1

Aqui está uma muito solução básica em PHP que deve ser expandida para fazer o que você realmente quer:

<form enctype="multipart/form-data" method="POST">
File: <input name="file" type="file">
<input type="submit" value="Upload">
</form> 
<?php
    $directory = "/var/www/secure/files/";
    $url_prefix = "http://www.mywebsite.com/secure/files/";

    if(array_key_exists("file", $_FILES)) {
        if($_FILES["file"]["error"] > 0) {
            echo "Error occurred during upload: " . $_FILES["file"]["error"];
        }
        else {
            # Randomly generate a filename with the correct extension
            $filename = $_FILES["file"]["name"];
            $ext = split("[/\.]", strtolower($filename)); 
            $ext = $exts[count($ext)-1]; 
            $target = $directory . rand() . "." . $ext;

            # Move the file to the desired directory and rename using the generated filename
            if(move_uploaded_file($_FILES["file"]["tmp_name"], $target)) {
                echo "File upload successful: " . $target;
            } 
            else {
                echo "Error occurred while storing file.";
            }
        }

        $dirHandler = opendir($directory);

        // Read the directory
        while($entry = readdir($dirHandler)) {
            $dir[] = $entry;
        }

        closedir($dirHandler);
        sort($dir);

        echo "<table>\n";
        echo "<tr><th>Filename</th><th>Filetype</th><th>Filesize</th></tr>\n";
        $count = count($dir);
        for($i = 0; $i < $count; $i++) {
                if (substr("$dirArray[$i]", 0, 1) != "."){ // don't list hidden files
                echo "<tr><td><a href=\"" . $url_prefix . $dir[$i] . "\">" . $dir[$i] . "</a></td>";
                echo "<td>" . filetype($dir[$i]) . "</td>";
                echo "<td>" . filesize($dir[$i]) . "</td></tr>\n";
            }
        }
        echo "</table>";
    }
?>
    
por 06.05.2010 / 10:47
1

Essa é uma pergunta antiga, mas a classe de aplicativo que o OP está procurando é chamada de "Transferência de Arquivos Gerenciada". Existem muitos fornecedores neste espaço. Todos esses são executados no Linux: CrushFTP, JSCAPE, RhinoSoft (CentOS / RHEL 6.x apenas), GoAnywhere. Há muito mais para escolher ...

    
por 22.08.2012 / 19:09
0

Já consultou serviços como o drop.io ou o dropbox.com? O drop.io ainda fornece uma API com bibliotecas de ajuda para Javascript, PHP, Ruby e .Net

    
por 06.05.2010 / 11:09
0

Qualquer upload de arquivos grandes para a Web por meio de um broswer é problemático. Você tem muito mais chances de receber um erro ao fazer o upload de um arquivo 1Go do que durante o upload de uma imagem de 100kb. E os navegadores não são conhecidos por sua capacidade de lidar bem com novas tentativas de upload.

Então, se você quiser colocar em prática uma solução robusta e fácil de usar, eu definitivamente acho que você precisará de um cliente grosso no PC do cliente. Isso poderia ser um applet Java, um cliente FTP, um downloader de propósito geral ...

Um cliente de FTP de uso geral pode ser uma solução fácil. O gerenciamento de usuários provavelmente poderia ser facilmente automatizado em torno do seu servidor FTP com alguns scripts ...

Desculpe, eu não tenho uma solução adequada, apenas algumas idéias ...

    
por 06.05.2010 / 13:14