Self Promo
January 25

Save File Me — бесплатный сервис бэкапов с шифрованием на стороне клиента

Каждый администратор знает, на сколько важно делать ежедневные резервные копии.
Для меня «идеальный» сервис резервирования это:

  • Отсутствие регистрации, привязки к почтовому адресу и т.п.
  • Возможность создавать независимые учетные записи, под каждый проект
  • Шифрование на стороне клиента, в том числе имени файла
  • Хранение неограниченного количества «версий» файлов
  • Открытый исходный код клиента, чтобы можно было доверять шифрованию
  • Один бинарный файл, без зависимостей, чтобы было удобно деплоить
  • По возможности на халяву :)

Я решил создать такой сервис, и вот что у меня получилось:

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

Под «капотом» в этот момент клиент создает уникальные ключи для учетной записи и для шифрования файлов. А сам файл шифруется и загружается на сервер:
savefileme put <имя файла>
Active subscription until 2021-01-20T17:08:16Z.
put: <имя файла>:    8.1MiB (1.2MiB/s) done

Восстановить файл также просто как и загрузить:
savefileme get <имя файла>
get: <имя файла>:     2KiB (41.2KiB/s) done

Cохранить папку с файлами можно, передав данные через stdin:
tar cz <папка> | savefileme put --stdin folder.tar.gz
Active subscription until 2021-01-20T17:08:16Z.
put: folder.tar.gz:    8.1MiB (1.1MiB/s) done

Посмотреть на список уже загруженных файлов:
savefileme ls
total 1
     id       size     updated datetime name (#files)
     64    8539136 2019-01-21T14:13:05Z <имя файла> (<количество версий>)

По-умолчанию, клиент «схлопывает» версии файла, но можно посмотреть и все версии:
savefileme ls -a
total 6
     id       size     updated datetime name
     44    8539136 2019-01-19T07:49:53Z <имя файла>
     45    8539136 2019-01-19T12:18:50Z <имя файла>
     46    8539136 2019-01-20T16:17:42Z <имя файла>
     47    8539136 2019-01-20T16:24:31Z <имя файла>
     48    8539136 2019-01-20T16:31:25Z <имя файла>
     49    8539136 2019-01-20T16:39:19Z <имя файла>

Каждой версии присваивается уникальный идентификатор, восстановить конкретную версию можно указав идентификатор:
savefileme get --id 46
get: <имя файла>:       2KiB (38KiB/s) done

Чтобы экспортировать учетную запись на другой сервер, достаточно скопировать инициализирующую строку командой account export:
savefileme account export
savefileme account import --secret <немного секретных ключей>

Бесплатно сервис позволяет хранить файлы до 3-х суток, после чего они автоматически удаляются. Обычно этого достаточно при ежедневном резервировании для восстановления после аварии или просто при миграции данных на другой сервер. Годовая подписка продлевает срок хранения файлов до 30 дней за 0.99$ в месяц (включая НДС).

Надеюсь, сервис Save File Me будет вам полезен, также как и мне.
+5
1.9k 29
Comments 6