2010-05-06 2 views
0

Я отправляю файлы в свой ведро S3, которые в основном сбрасывают базы данных. Эти ключи являются доступной для человека датой («2010-05-04.dump»), и вместе с этим я устанавливаю поле метаданных в UNIX-время дампа.Выбор ключей на основе метаданных, возможен с помощью Amazon S3?

Я хочу написать сценарий, который извлекает последний дамп из ведра. То есть я хочу, чтобы ключ с наибольшим значением метаданных времени unix. Возможно ли это с Amazon S3, или это не значит, что S3 предназначен для работы?

Я использую как инструмент командной строки aws и библиотеки питона boto

ответ

1

Вот это, кажется, работает, но, может быть, не самый идеальный (используя Boto)

latest_key = None 
latest_ts = 0 
for key in bucket.get_all_keys(): 
    # go through all keys and return the one with the higest timestamp 
    ts = key.get_metadata('timestamp') 

    if ts > latest_ts: 
     latest_key = key 
     latest_ts = ts 
+0

Хм, не думайте, что вы можете избежать повторения всех ключей. (Но делает ли 'get_metadata' другой запрос к S3? Если да, этого можно было бы избежать, просто используя имена файлов.) – Jonik

+0

А у вас потенциально есть несколько файлов в день? В этом случае вам действительно нужно использовать временную метку (или добавить время к именам файлов). – Jonik

+0

hm похоже, что большинство людей используют simpledb и s3 вместе при использовании метаданных: http://aws.amazon.com/simpledb/usecases_metadata_indexing/ – anvarik

Смежные вопросы