Не уверен, что это правильное место, чтобы спросить, но я все равно продолжу.
Я хочу изменить команду aws s3 sync
, чтобы она не переопределяла более новые файлы в месте назначения. В настоящее время он сравнивает размер файла и временную метку, и если они отличаются, то файл в источнике копируется в место назначения.
Рассматривая исходный код CLI AWS, представляется возможным просто изменить код Python здесь
class SizeAndLastModifiedSync(BaseSync):
def determine_should_sync(self, src_file, dest_file):
same_size = self.compare_size(src_file, dest_file)
same_last_modified_time = self.compare_time(src_file, dest_file)
should_sync = (not same_size) or (not same_last_modified_time)
if should_sync:
LOG.debug(
"syncing: %s -> %s, size: %s -> %s, modified time: %s -> %s",
src_file.src, src_file.dest,
src_file.size, dest_file.size,
src_file.last_update, dest_file.last_update)
return should_sync
Но, не будучи большим экспертом по питону, я не уверен, что есть другие соображения, которые могли бы помешать работе этих модификаций.
Кажется, все, что мне нужно сделать, это добавитьпроверьте, не превышает ли временная метка dest_file значение временной метки src_file - после разрешения таких вещей, как часовые пояса и т. д.
Будут признательны любые указатели на лучший подход.