按创建日期查询S3存储桶文件

时间:2018-01-09 14:52:30

标签: amazon-web-services amazon-s3

是否可以使用分页查询并获取最新创建顺序中的s3存储桶中的文件?

我甚至可以将创建时间戳作为后缀存储在我的文件名中。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

2017年11月29日 AWS Re:invent AWS宣布了一项名为S3 Select的服务,该服务可在预览中使用。

  

S3 Select是一种新的Amazon S3功能,旨在仅提取   您需要从对象获得的数据,从而显着提高性能   并降低

中需要访问数据的应用程序的成本

此外,

  

在预览期间,您可以通过可用的方式使用Amazon S3 Select   Presto连接器,使用AWS Lambda,或使用任何其他应用程序   S3 Select SDK for Java或Python。此预览版可在   美国东部(弗吉尼亚北部),美国东部(俄亥俄州),美国西部(俄勒冈州),欧盟(爱尔兰),   和亚太地区(新加坡)AWS地区

你可以Apply for Preview here

由于

答案 1 :(得分:0)

也许这link会有所帮助。它使用boto3 python SDK。

基本上,写一个函数:

  1. 使用list_all_objects API调用
  2. 遍历对象
  3. 将对象的Key(名称)和'LastModified'属性存储在字典中。
  4. 对字典进行排序,然后将其返回。

    def sort_objects_in_bucket_by_timestamp( bucket_name ):
      sorted_objects_dict = {}
      for curr_obj_attr_dict in  s3_client.list_objects_v2( Bucket = bucket_name )['Contents']:
        sorted_objects_dict[curr_obj_attr_dict['Key']] = curr_obj_attr_dict['LastModified']
    return sorted(sorted_objects_dict.items(), key=lambda x: x[1])
    
  5. 该函数将返回特定存储桶中的对象列表,按“LastModified”时间戳从最旧到最新排序。

    如果您不想使用LastModified时间戳,请更改函数以从存储桶名称(您认为可行)中读取时间戳部分,并将值设为时间戳。