Назад | Перейти на главную страницу

Решение для простого обмена большими файлами с технически подкованными пользователями?

У нас есть настроенный сервер, который мы хотели бы использовать для простого обмена большими файлами с известными клиентами. Мы ищем программное обеспечение, чтобы облегчить это, но как-нибудь ввод "большой файловый хостинг" в Google дает сомнительные результаты ..;)

Мы выдвинули следующие требования, и я надеюсь, что любой из вас может указать нам направление решения, которое предлагает эту функциональность или адаптируется к нашим потребностям.

Кто-нибудь знает программное обеспечение, которое соответствует вышеуказанным критериям? Мы уже видели несколько примеров этого в научном сообществе, но ничего не могли бы использовать напрямую ...

С уважением, Тим


Скопировано из комментариев ниже:

Моя проблема с ftp - это большие накладные расходы на создание пользователей, настройки прав, развертывание клиентов, перемещение файлов и запоминание последующего удаления пользователей, папок, прав и т. Д.

Мы предполагаем, что для краткосрочных проектов будет больше одноразовых токенов, чем для постоянных клиентов с соответствующими правами.

Похоже, с этим справится простой скрипт PHP. Хотя я не знаю о тайм-аутах и ​​т. Д., Если речь идет об этих больших файлах.

Скрипт может работать следующим образом:

  • Если логин не указан, показать форму входа
  • Проверить этот логин по базе данных
  • Показать простой селектор файлов
  • Загрузите файл в случайно сгенерированную папку / имя файла и сообщите пользователю об этом имени.

Потребуются следующие дополнительные вещи:

  • Администрирование Логин-базы данных
  • Cronjob, который удаляет старые файлы

FTP будет хорошим выбором, так как на стороне сервера вы можете настроить скрипты для управления файлами по мере необходимости. Ваши клиенты смогут получить доступ к файлам с помощью большинства веб-браузеров или даже Windows Explorer. Вы можете защитить паролем свои ftp-папки, что обеспечивает некоторую безопасность, однако передача файлов будет прозрачной. Кроме того, многие корпоративные среды блокируют FTP. Но это был бы самый простой и гибкий маршрут.

Если вам требуется безопасная передача файлов, то WebDav предоставляет аналогичные возможности для конечных пользователей, но вы можете безопасно передавать файлы через HTTPS, а http и https с меньшей вероятностью будут заблокированы вашими клиентами. WebDav работает поверх большинства веб-серверов (и у Apache, и у IIS есть плагины), и, поскольку он на самом деле просто предоставляет доступ к вашей файловой системе, вы можете использовать любые скрипты или функции операционной системы для автоматического управления файлами.

Файлы данных, которыми обмениваются, иногда содержат конфиденциальную информацию, поэтому создаваемые URL-адреса должны быть случайными и не общедоступными.

Это очень плохо. Если данные действительно конфиденциальны, вы не можете доверять только URL-адресу для обеспечения конфиденциальности.

Что о ftp?

Он поддерживает аутентификацию, вы можете запускать сценарии для удаления старых данных, он доступен на каждой платформе, и ваша единственная проблема будет заключаться в выборе подходящего клиента, который будет указывать пользователям использовать его.

Здесь очень базовое решение PHP, которое следует расширить, чтобы делать то, что вы действительно хотите:

<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>";
    }
?>

Это старый вопрос, но класс приложения, который ищет OP, называется «Управляемая передача файлов». В этом пространстве много продавцов. Все они работают в Linux: CrushFTP, JSCAPE, RhinoSoft (только CentOS / RHEL 6.x), GoAnywhere. Есть еще много вариантов на выбор ...

Вы смотрели на такие сервисы, как drop.io или dropbox.com? drop.io даже предоставляет API со справочными библиотеками для Javascript, PHP, Ruby и .Net

Загрузка любого большого файла в Интернет через браузер проблематична. У вас гораздо больше шансов получить ошибку при загрузке файла 1Go, чем во время загрузки изображения размером 100 КБ. А браузеры не умеют хорошо обрабатывать повторные попытки загрузки.

Так что если вы хотите создать надежное и простое в использовании решение, я определенно думаю, что вам понадобится толстый клиент на клиентском ПК. Это может быть Java-апплет, FTP-клиент, загрузчик общего назначения ...

FTP-клиент общего назначения может быть довольно простым решением. Управление пользователями, вероятно, можно легко автоматизировать на вашем FTP-сервере с помощью нескольких скриптов ...

Извините, у меня нет подходящего решения, всего несколько идей ...