
Я знаю, что сейчас популярны облачные решения и решения для синхронизации, но у меня есть сценарий, в котором я хотел бы работать с файлами в автономном режиме (т.е. без сетевого подключения к компьютеру, где обычно находятся файлы). Это не будет работой с контентом, а его реорганизацией и сортировкой, когда я не в сети, а затем эти изменения будут применяться при повторном подключении.
Я предполагаю, что я мог бы собрать какую-то форму скрипта, а затем вручную применить изменения, но есть ли какие-то другие подходы, которые я мог упустить? Я думал, возможно, о какой-то форме отключенной файловой системы.
Ключевыми задачами для меня являются:
- Переименовать файлы и папки
- Перемещать файлы и папки из одной папки в другую
- Удалять файлы и папки (редко)
В идеале я ищу что-то, что работает на Linux (что запущено как на «домашнем» компьютере, где находятся оригинальные файлы, так и на «отключенном» компьютере). Если это работает на Android и/или Windows, тем лучше.
В моем сценарии оба компьютера настроены на одного пользователя (т.е. маловероятно возникновение конфликта файлов), но я могу себе представить, что другим, заинтересованным в таком решении, может не так повезти.
Причина, по которой синхронизация и облако нецелесообразны/неполезны, заключается в том, что файлы слишком большие, и в большинстве случаев я достаточно хорошо знаю о них только по названию/местоположению, и мне просто нужно применить некий «порядок».
Я поискал в Google и нашел CODA, но, похоже, эта группа не предлагает того, что мне нужно (ни стабильности, ни активного сообщества, судя по тому, что я читал, но я не хочу обидеть фанатов CODA!).
решение1
Я думаю, Dropbox может подойти вам. Вы можете создать папку Dropbox и добавить все свои файлы. Они будут загружены на серверы Dropbox.
Просто создайте папку dropbox на каждой используемой вами машине. Первоначальная загрузка файлов может занять некоторое время, но это позволит вам работать с файлами в автономном режиме. После того, как вы снова подключитесь к сети, после офлайн-режима все изменения будут синхронизированы.
Самое лучшее в этом то, что если вы перемещаете или переименовываете файлы в папке Dropbox, эти файлы не нужно повторно загружать. Dropbox достаточно умен, чтобы обнаружить изменения и просто перемещает/переименовывает файлы на других клиентах, не перезагружая весь файл. Похоже, это тот тип операции, который вам нужен.
решение2
Как сказал Джон, Dropbox должен подойти для этого. Но если файлы просто слишком велики для использования Dropbox (например, слишком долго загружать их в облако и скачивать или слишком дорого хранить), то Subversion может быть лучшей альтернативой. Он предназначен для контроля версий, а не для синхронизации файлов, но способ, которым он отслеживает файлы/изменения, также позволяет вам перемещать большие файлы и даже дублировать их без передачи всего файла/папки по сети.
По сути, вам просто нужно настроить центральный SVN-репозиторий на вашем главном сервере и извлечь копии нужных вам каталогов на ваш удаленный компьютер. Затем, используя клиент SVN (что-то вроде TortoiseSVN будет наиболее удобным, если вы предпочитаете что-то, интегрированное в графический интерфейс вашего файлового менеджера), вы можете перемещать файлы/папки и манипулировать каталогом так, как вам нужно. Затем, когда вы фиксируете изменения, новая структура каталогов передается обратно в центральный репозиторий без повторной загрузки содержимого файлов.
Фактически, вы даже можете избавиться от необходимости передачи оригинального процесса оформления заказа через Интернет, если вы просто:
- Подключитесь по SSH к центральному серверу, на котором размещен репозиторий SVN, и извлеките рабочую копию на этом сервере для работы по SSH.
Или манипулируйте репозиторием напрямую, без извлечения, например:
svn move https://[email protected]/myrepo/mydir https://[email protected]/myrepo/mydir2
- Вы также можете сделать это через графический интерфейс, используя браузер репозиториев TortoiseSVN.
Вы также можете использовать rsync
для синхронизации структур каталогов без ненужных передач файлов. Например, вы можете SCP/SFTP на свой сервер с телефона и перемещать файлы. А затем вы можете использовать rsync для распространения изменений на другой компьютер.
решение3
Лично я с этим не сталкивался, но вы смотрели git-annex?http://git-annex.branchable.com/ Из того, что я читал, это в основном контроль версий для имен файлов и метаданных вместо самих файлов, что позволяет отслеживаемым файлам быть разбросанными по разным местам. Кажется, это соответствует вашему требованию "отключенности" до буквы.