У меня есть три разных контейнера BLOB-объектов службы хранилища Azure, которые используются для обслуживания содержимого веб-сайта: один для производства, один для промежуточного хранения и один для разработки.
Моя цель - синхронизировать постановку и разработку на ежедневной или еженедельной основе, чтобы они соответствовали производству.
Я собрал что-то в PowerShell, что в принципе работает, но медленно и тяжеловесно. Он включает в себя удаление промежуточных контейнеров и контейнеров разработки, а затем двойное копирование всего производственного контейнера. Для всего 20 тысяч товаров весь этот процесс занимает более часа.
Учитывая, что за неделю может измениться всего пара сотен элементов, дельта-операция, вероятно, будет выполнена намного быстрее.
Кто-нибудь видел инструмент или метод, который может выполнять дельта-копирование между контейнерами больших двоичных объектов службы хранилища Azure? Скорее всего, я напишу свой собственный инструмент, но хотел бы посмотреть, есть ли какие-то там в настоящее время.
Сегодня я повторно посетил инструмент AzCopy и обнаружил, что он прошел довольно долгий путь и идеально служит этой цели. Флаг - это AzCopy Sync, а также существует ряд параметров управления, таких как удаление файлов назначения, которых нет на целевом устройстве.
Вероятно, благодаря улучшениям в архитектуре или инфраструктуре Azure, этот перенос также невероятно быстр. Первоначальная синхронизация 10 ГБ была выполнена менее чем за 60 секунд. Раньше это занимало час или больше.
К сожалению, хорошего способа сделать это нет. Как вы уже видели, такие инструменты, как AZCopy, перемещают файлы за вас, но не выполняют дельта-копирование или синхронизацию.
Вы могли бы сделать что-нибудь в PowerShell самостоятельно, чтобы просмотреть капли и проверить, существуют ли они в месте назначения, а затем сравнить что-то вроде даты изменения или хэша файла, но, к сожалению, я не могу представить, что это будет особенно быстро.
Я знаю, что это немного старый пост, но я просто наткнулся на него и подумал, что брошу идею в горшок, есть ли причина, по которой его нужно запускать ежедневно / еженедельно? Вы могли бы использовать что-то вроде приложения логики с триггером хранилища больших двоичных объектов или функцию с триггером больших двоичных объектов? Это сработает мгновенно, поэтому учетные записи хранения всегда будут синхронизированы.
Другой вариант - использовать триггеры для вставки дельты в учетную запись / базу данных хранилища, а затем обрабатывать массовые изменения ежедневно / еженедельно.