从S3存储桶中随机采样

时间:2020-04-08 13:43:17

标签: python amazon-s3 boto3

我有一个问题,我需要从AWS S3存储桶中随机采样。我正在使用python boto3库查询S3。

问题在于存储桶包含大约4亿个密钥。因此,创建键列表为:

kwargs = {'Bucket': bucket}

count = 0
while (True):
    resp = s3.list_objects_v2(**kwargs)
    for obj in resp['Contents']:
        keys.append(obj['Key'])
        try:
            kwargs['ContinuationToken'] = resp['NextContinuationToken']
        except KeyError:
            break

将花费大量时间。

另一种选择是,如果可以的话,已经在AWS端对密钥进行了随机抽样。我不确定这是否可能或更快速?

从AWS存储桶中随机采样一些密钥的快速方法是什么?当然,很高兴使用boto3

以外的其他方式

我认为按日期过滤将是我可以轻松管理的事情,所以我做了类似的事情:

export LASTWEEK=`date -v-1d +%F`
aws s3api list-objects-v2 --bucket alcheratech-old-analysed-data --query 'Contents[?LastModified > `$YESTERDAY`]'

这似乎也运行了一段时间。不知道这是否列出所有内容,然后进行过滤...


0 个答案:

没有答案