У наших клиентов есть общие файловые ресурсы Windows, где они хранят множество различных документов.
Мы хотим загрузить файлы, соответствующие шаблонам подстановочных знаков (например *.pdf
, *.xlsx
, и т. д.), из этих файловых ресурсов в контейнеры S3 для создания озера данных.
Мы рассматриваем несколько альтернатив, но считаем, что у некоторых людей могут быть идеи получше, как это сделать:
Запустите программное обеспечение агента на файловых серверах Windows клиентов.
1.a. Напишите скрипт PowerShell, который
rclone
копирует новые/измененные/удаленные файлы в S3 и вызывает HTTP API отчетов, чтобы сообщить нам, успешно ли он был выполнен или нет, и запланируйте этот скрипт на периодический запуск с помощью планировщика задач.1.б. Сделайте то же самое, но используя
aws s3 sync
fromaws-cli
.1.c. Разместим собственный загрузчик на основе Facebook Watchman или аналогичного решения для просмотра файлов.
Настройте сервер SFTP или WebDAV на клиентском файловом сервере и запустите его
rclone
с экземпляра EC2, которым мы управляем.
Мы хотим знать, нет ли другой более простой технологии, которую мы могли бы использовать. Может ли Amazon FSx как-то помочь? Как своего рода автоматический механизм репликации для зеркалирования наших клиентских файловых ресурсов на файловых системах Amazon FSx Windows?
Или, может быть, есть какое-то другое решение «создать свой собственный Dropbox с использованием бэкэнда Amazon S3»?
решение1
Вы можете использовать Cloudberry Backup, это приложение для односторонней синхронизации. Установите его на Windows Server, добавьте учетную запись S3, настройте локальный путь к файлу с фильтром формата файла и местом назначения для вашего контейнера S3. Это приложение содержит планировщик, его можно запускать автоматически. Пока это решение, которое я использую. AWS CLI или другое приложение с открытым исходным кодом, такое как FreeFileSync, не могут удовлетворить мои требования, так как эти приложения должны проверять обе стороны перед синхронизацией, и с ростом огромных файлов это вызывает проблемы. Но на пути к решению этой проблемы синхронизация просто сохраняет последние файлы на сервере Windows.