Возможный дубликат:
Бесплатный способ поделиться большими файлами через Интернет?
Какие есть варианты для передачи больших файлов без использования интернета?
Лаборатория моей жены делает проект здесь в США с сотрудниками в Сингапуре. Время от времени им требуется передавать большое количество многомерных изображений (сжатых ~ 10 ГБ) по континентам. С текущими технологиями, что было бы хорошим решением для этого сценария использования?
Я могу думать о нескольких, но ни один из них не кажется идеальным:
- Прямое подключение через Интернет: скорость передачи составляет около 500 КБ / с, также отсутствует инструмент для обработки ошибок / повторных передач.
- Загрузка на общий сервер или сервис, такой как Dropbox: больно загружать для неамериканских соавторов.
- Запись дисков или копирование на жесткие диски и доставка через Courier: значительная задержка плюс дополнительная работа по созданию локальной копии.
Какие-либо предложения?
Обновление: ни одна сторона сотрудничества не является технически подкованным пользователем.
data-transfer
Frank
источник
источник
Ответы:
Я предлагаю вам использовать Rsync , Rsync поддерживает алгоритм дельта-передачи, поэтому, если ваши файлы изменены только частично, или если предыдущая передача была прервана ненормально, Rsync достаточно умен, чтобы синхронизировать только то, что было добавлено / изменено
Существует несколько портов исходного Rsync для Windows и других не-unix-совместимых систем, как бесплатных, так и несвободных Посмотри пожалуйста Rsync Wikipedia статья для деталей.
Rsync over SSH очень широко используется и работает хорошо. 10 ГБ - это относительно небольшой объем данных в наши дни, и вы не указали, что означает «иногда». Еженедельно? Ежедневно? Ежечасно? При скорости передачи 500 КБ / с это займет около 6 часов, что не очень долго. Если вам нужно часто передавать данные, лучше создать задачу cron для автоматического запуска rsync.
источник
rsync
нужен собственный протокол для дельт, требующий совместимую систему на другом конце?rsync
Дельта-алгоритм работы при передаче двоичных сжатых данных (.zip
или же.jpg
)?Соединение через Интернет может быть жизнеспособным вариантом, и программа, такая как bittorrent, как раз подходит для этой цели, поскольку она разбивает файлы на логические части, которые будут отправлены через Интернет для восстановления на другом конце.
Bittorrent также предоставляет вам автоматическое исправление ошибок, исправление поврежденных частей, и если файлам понадобится больше людей, они получат преимущество от возможности получать файл из такого количества источников, которые уже (частично) загружали файл.
Конечно, люди видят в этом хороший способ загрузки фильмов и тому подобного, но у него есть гораздо больше легальных применений.
Многие клиенты Bittorrent также имеют встроенные трекеры, поэтому вам не нужно иметь выделенный сервер для размещения файлов.
источник
Разделите файл на куски, например, 50 МБ (используя, например,
split
). Вычислить контрольные суммы для всех из них (например,md5sum
). Загружайте напрямую, используя FTP и устойчивый к ошибкам FTP-клиент, такой какlftp
в линуксе Передайте все куски и файл, содержащий все контрольные суммы.На удаленном сайте убедитесь, что все чанки имеют желаемую контрольную сумму, повторно загрузите те, которые не удалось, и заново соберите их в исходный файл (например, используя
cat
).Верните местоположение сервера (я разместил сообщение, предполагая, что конечный сайт предоставил сервер, и вы начнете передачу локально, когда файлы будут готовы) по мере необходимости Ваш FTP-клиент не должен заботиться.
У меня были подобные проблемы в прошлом, и с помощью отказоустойчивого клиента FTP работал. Никакие биты никогда не переворачивались, просто обычное соединение прерывалось, поэтому я мог пропустить создание фрагментов и просто загрузить файл. Мы все еще предоставили контрольную сумму для всего файла, на всякий случай.
источник
lftp
не прерывает незавершенную передачу для любой причина. Убедитесь, что у вас всегда достаточно свободного места на целевом сайте.Вариант ответа Даниэля Бека - разделить файлы на куски порядка от 50 до 200 МБ и создать файлы четности для всего набора.
Теперь вы можете передавать файлы (включая файлы четности) с FTP, SCP или чем-то еще на удаленный сайт и выполнять проверку после прибытия всего набора. Теперь, если есть поврежденные части, их можно исправить с помощью файлов четности, если блоков достаточно. Это зависит более или менее от того, сколько файлов повреждено и сколько файлов четности вы создали.
Файлы четности часто используются в Usenet для отправки больших файлов. Большую часть времени они делятся на архивы RAR. Подобным образом отправляются данные размером от 50 до 60 ГБ.
Вы должны обязательно проверить первый ссылку, и вы также можете взглянуть на QuickPar инструмент, который можно использовать для создания файлов четности, проверки загруженных файлов и даже восстановления поврежденных файлов с помощью предоставленных файлов четности.
источник
Это один большой 10GB файл? Может ли это быть легко разделить?
Я не слишком много с этим играл, но мне показалось интересным и относительно простым понятием, которое может сработать в этой ситуации:
http://sendoid.com/
источник
Сделайте данные доступными через ftp / http / https / sftp / ftps (требуя учетные данные для входа) и используйте любые менеджер загрузки на стороне клиента.
Менеджеры загрузок специально разработаны для извлечения данных независимо от возможных ошибок, поэтому они идеально подходят для вашей задачи.
Что касается сервера, FTP-сервер обычно проще всего настроить. Вы можете проконсультироваться список в Википедии. HTTPS, SFTP и FTPS допускают шифрование (в чистом FTP / HTTP пароль отправляется в виде открытого текста), но SFTP / FTPS реже поддерживается клиентским программным обеспечением, и настройка сервера HTTP / HTTPS довольно сложна.
источник