2010-05-06 81 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