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

Автоматическая синхронизация папки на сервере Ubuntu с ведром amazon S3

У меня есть приложение, работающее на сервере Digital Ocean, и есть две папки, которые обновляются загруженными пользователем изображениями.

Можно ли автоматически переносить новые закачки из папки сервера в корзину s3.

Я уже настроил AWS CLI на сервере ubuntu.

Спасибо

Вы также можете попробовать Клиент Minio aka mc, с открытым исходным кодом и совместимым с S3 API. Ты можешь использовать mc mirrorкоманда для архивации каталогов.

Установка клиента minio:

 $ wget https://dl.minio.io/client/mc/release/linux-amd64/mc 
 $ chmod 755 mc
 $ ./mc --help

Настройка mc для Amazon S3:

$ ./mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>

пример

$ ./mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

Копирование локальной папки в AWS S3:

$ ./mc mb mys3/mys3baucket
$ ./mc mirror mylocaldir/ mys3/mys3baucket

Первая команда создает корзину с именем mys3baucket. Вторая команда зеркально отображает локальный каталог в корзину S3 по имени. Это можно легко установить в cron для периодического зеркала.

mc реализует следующие команды:

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Надеюсь, поможет.

Отказ от ответственности: я работаю на Минио

На мой взгляд, здесь нет идеального решения, но вы можете попробовать два обходных пути:

  • Установите на свои серверы ведро в качестве системы хранения файлов с S3FS или как https://github.com/s3fs-fuse/s3fs-fuse.
  • График s3cmd синхронизировать, чтобы синхронизировать вашу папку с корзиной S3. http://s3tools.org/s3cmd-sync.

Это работает как своего рода rsync.

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