0

我有这样的 S3 目录结构

bucket 
|___ base_path
        |__ data1.csv
        |__ data2.csv
        |__ processed/
               |_ data1.csv
               |_ data2.csv

在使用 boto3 和 paginator 读取数据时,如下面的代码,我不希望获取文件夹中的文件,但默认情况下processed,aws返回下的所有文件Paginatorbase_path

def load_irt_files():
    paginator = s3.get_paginator("list_objects")
    page_iterator = paginator.paginate(Bucket=S3_BUCKET, Prefix=f"base_path/data/")
    file_name_list = []
    for page in page_iterator:
        file_name_list.extend([obj["Key"] for obj in page["Contents"]])

预期产出

["base_path/data1.csv", 
"base_path/data2.csv"]

电流输出

["base_path/data1.csv", 
"base_path/data2.csv",
"base_path/processed/data1.csv"
"base_path/processed/data2.csv"]
4

1 回答 1

0

如果您指定Delimiter='/',则结果将仅限于指定的文件夹。

这也会导致CommonPrefixes返回一个列表,其中列出了可用的子文件夹。

于 2020-08-06T01:54:56.677 回答