【问题标题】:Selecting keys based on metadata, possible with Amazon S3?基于元数据选择密钥,可以使用 Amazon S3 吗?
【发布时间】:2010-05-08 02:45:45
【问题描述】:

我正在将文件发送到我的 S3 存储桶,这些文件基本上是经过 gzip 压缩的数据库转储。它们的键是人类可读的日期(“2010-05-04.dump”),此外,我将元数据字段设置为转储的 UNIX 时间。

我想编写一个从存储桶中检索最新转储的脚本。也就是说我要的是unix时间元数据值最大的key。这是否可以通过 Amazon S3 实现,或者这不是 S3 的工作方式?

我同时使用命令行工具aws和python库boto

【问题讨论】:

    标签: amazon-s3 amazon-web-services 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
    

    【讨论】:

    • 嗯,我认为您无法避免遍历所有键。 (但是get_metadata 是否对 S3 进行了另一次查询?如果是,则可以通过仅使用文件名来避免这种情况。)
    • 啊,但是您每天可能有几个文件吗?在这种情况下,您确实需要使用时间戳(或为文件名添加时间)。
    • 嗯,当涉及到元数据时,似乎大多数人同时使用 simpledb 和 s3:aws.amazon.com/simpledb/usecases_metadata_indexing
    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多