2010-05-06 28 views
0

我發送文件到我的S3存儲桶,基本上是壓縮的數據庫轉儲。他們的鍵是一個人類可讀的日期(「2010-05-04.dump」),並且,我將元數據字段設置爲轉儲的UNIX時間。基於元數據選擇密鑰,Amazon S3可能嗎?

我想編寫一個腳本來從存儲桶中檢索最新的轉儲。也就是說,我想要具有最大的unix時間元數據值的密鑰。這可能與亞馬遜S3,或者這不是S3的意圖工作?

我同時使用命令行工具aws和Python庫boto

回答

1

這裏,這似乎工作,但也許不是最理想的(使用博託)

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 2010-05-07 18:50:24

+0

啊,但是你每天可能有幾個文件嗎?在這種情況下,你確實需要使用時間戳(或者添加時間到文件名)。 – Jonik 2010-05-07 19:01:53

+0

hm看起來大多數人在涉及元數據時一起使用simpledb和s3:http://aws.amazon.com/simpledb/usecases_metadata_indexing/ – anvarik 2013-03-20 16:44:12