Можно ли обновить только часть файла, который уже был загружен на S3? - PullRequest
3 голосов
/ 27 января 2012

Представьте, что я загрузил файл 50 МБ на S3.

После полной загрузки файла его изменили, добавив в него 5 МБ данных.Теперь размер файла составляет 55 МБ.

Можно ли загрузить только те 5 МБ, которые были добавлены в S3, или мне всегда нужно повторно загружать весь файл?

Возможно, что-то вродеМетод PUT, который принимает диапазон содержимого, чтобы я мог обновить только этот конкретный диапазон байтов.

Ответы [ 2 ]

1 голос
/ 31 января 2012

В настоящее время S3 API не позволяет загружать измененные детали (т.е. исправлять файл). Вам необходимо повторно загрузить весь файл.

Другим вариантом может быть использование собственного формата файла для сохранения файла в виде набора фрагментов. Но это делает его несовместимым с другими клиентами s3.

0 голосов
/ 28 января 2012

Вам может понадобиться посмотреть что-то вроде rsync, если вы будете регулярно этим заниматься. Rsync отслеживает изменения, внесенные в файлы, и синхронизирует их между серверами. Здесь, на работе, мы используем оболочку для rsync под названием duplicity , которая позволяет нам делать резервные копии файлов на S3 и загружать только разницу между измененными файлами.

Однако все зависит от ваших конкретных потребностей.

...