Односторонняя синхронизация ИЗ S3

Вопрос или проблема

Я видел много примеров односторонней синхронизации с ведром S3 с файловой системы Windows, но я хотел бы сделать это в обратном направлении.

У меня была система, которая использовала обычную команду aws sync, но, к моему ужасу, локальные изменения отражались обратно в ведре. Я не могу найти способ сделать так, чтобы синхронизация происходила только в одном направлении.

Команда aws cp работает, но, похоже, она каждый раз получает совершенно новую копию, а ведро содержит полтерабайта данных, что совсем не идеально с точки зрения затрат и пропускной способности, особенно когда изменения составляют всего несколько сотен мегабайт в день.

Может быть, кто-то сможет указать мне правильное направление для решения этой проблемы, или если я, возможно, пропустил вопрос об этом, пожалуйста, укажите мне на него (я искал, но, возможно, мой поиск в Google в последнее время немного заржавел).

Используйте команду CLIv2 “aws s3 sync” команду.

Описание на этой странице: “Рекурсивно копирует новые и обновленные файлы из исходного каталога в назначение. Создает папки в назначении только в том случае, если они содержат один или несколько файлов.” Это соответствует вашему требованию копировать из S3 на локальный, а не синхронизировать в обоих направлениях.

Вот пример команды, которую я использую для копирования своих локальных резервных копий в S3, включая удаление файлов из S3, которые больше не существуют на локальном диске:

aws s3 sync --size-only C:\foldername s3://bucketname/foldername --profile profilename --storage-class STANDARD_IA --delete

Ответ или решение

Однонаправленная синхронизация из S3 в локальную файловую систему

Синхронизация данных между облаком и локальной файловой системой – это частая задача, особенно для пользователей Amazon S3 (Simple Storage Service). Понимание того, как правильно настроить однонаправленную синхронизацию из S3 в локальную файловую систему, может существенно упростить управление данными и избежать нежелательных проблем при использовании aws s3 sync.

Проблема с двунаправленной синхронизацией

Вы упомянули, что используете команду aws s3 sync, но столкнулись с проблемой, когда изменения в локальной файловой системе непреднамеренно синхронизировались обратно в S3. Это может происходить, если не заданы соответствующие параметры и опции, и в результате вы получаете двунаправленную синхронизацию, что скорее всего не отвечает вашим требованиям.

Рекомендация по использованию AWS CLI для однонаправленной синхронизации

Команда, которую вы можете использовать для однонаправленной синхронизации с Amazon S3 в вашу локальную файловую систему, – это aws s3 sync. Эта команда позволяет вам скопировать только новые и обновлённые файлы из вашего S3-бакета на локальную машину, без обратной синхронизации изменений. Это будет именно то, что вам нужно для достижения вашей цели.

Пример команды

Вот пример команды, которую можно использовать:

aws s3 sync s3://ваш-бакет/папка C:\ваша-папка --size-only --profile ваш-профиль
  • s3://ваш-бакет/папка – это путь к вашей папке в S3.
  • C:\ваша-папка – это путь к вашей локальной папке.
  • --size-only – флаг, указывающий, что при сравнении файлов следует учитывать только их размеры, что может существенно ускорить процесс.
  • --profile ваш-профиль – здесь вы можете указать профиль AWS, если у вас их несколько.

Поддержка изменений с минимальными затратами

Используя команду aws s3 sync, вы избегаете необходимости копировать все данные повторно, что особенно важно, если у вас большой объем хранимых данных. Таким образом, при наличии лишь небольших изменений в данных, команда будет загружать только те файлы, которые были обновлены, что значительно сэкономит трафик и уменьшит затраты.

Рекомендации по оптимизации использования S3

  1. Используйте версии файлов: Вы можете включить версионирование в вашем S3-бакете, чтобы отслеживать изменения в файлах и восстанавливать предыдущие версии в случае необходимости.

  2. Хранение с низкой частотой доступа (IA): Если данные используют редко, рассмотрите возможность использования класса хранения STANDARD_IA или ONEZONE_IA для снижения затрат.

  3. Автоматизация копирования: Рассмотрите возможность использования AWS Lambda для автоматизации процесса копирования данных, если изменения происходят в определенное время или с определенной регулярностью.

Заключение

Использование команды aws s3 sync с правильными параметрами позволит вам осуществлять однонаправленную синхронизацию из вашего S3-бакета в локальную файловую систему без нежелательного отражения локальных изменений в облаке. Такой подход позволит вам управлять данными более эффективно и сократит затраты на передачу данных. Если вам потребуется дополнительная информация или примеры, не стесняйтесь задавать вопросы.

Оцените материал
Добавить комментарий

Капча загружается...