Сначала получить новейшие ключи S3 - PullRequest
2 голосов
/ 19 июня 2011

Я пишу приложение, которое хранит (потенциально миллионы) объектов в корзине S3. Мое приложение возьмет самый последний объект (примерно), обработает его и запишет обратно в ту же корзину. Мне нужен способ доступа к ключам и именования новых объектов, чтобы приложение могло легко получить доступ к новейшим объектам.

Я знаю, что могу сделать это правильно, поместив метаданные в SimpleDB, но мне не нужна жесткая согласованность. Это нормально, если приложение захватывает объект, который не совсем новый. Мне просто нужно, чтобы приложение получало новые ключи вместо старых. Поэтому я пытаюсь сделать это проще, используя только S3.

Есть ли способ доступа и сортировки метаданных S3? Или может быть схема для именования объектов, которая бы получала то, что мне нужно (поскольку я знаю, что S3 перечисляет ключи в лексикографическом порядке, а boto может обрабатывать пейджинг).

1 Ответ

1 голос
/ 19 июня 2011

S3 версии действительно помогает здесь.Если это действительно одна и та же «вещь», вы можете включить управление версиями для своей корзины, получить данные из своего ключа, изменить их и сохранить обратно на тот же ключ.

вам нужно будет использовать boto's

bucket.get_all_versions( prefix='yourkeynamehere' )

вы получаете версии, сначала самые последние, поэтому, хотя эта функция не обрабатывает подкачку страниц, вы можете просто получить первый индекс и получить самую последнюю версию.

если вы захотите вернуться дальше и вам потребуется подкачка страниц, boto также предлагает функцию list_versions (), которая также берет префикс и даст вам набор результатов, который будет перебирать все версии, не беспокоясь об этом.

если эти объекты на самом деле не являются "одним и тем же" объектом, это действительно не имеет значения, потому что s3 не хранит diff-ы - он хранит все целиком каждый раз.Если у вас есть несколько «типов» объектов, вы можете иметь несколько наборов версий, из которых вы можете получить самые последние.

Я использую управление версиями, и я очень доволен этим.

...