2024-06-02 07:38:00 发布
网友
我试图复制AWS CLIls命令,以递归方式列出aws3存储桶中的文件。例如,我将使用以下命令递归地列出“location2”bucket中的所有文件。在
ls
aws s3 ls s3://location2 --recursive
AWS SDK for Python(即boto3)等价于aws s3 ls s3://location2 --recursive?在
boto3
您需要使用paginators:
bucket = "my-bucket" import boto3 client = boto3.client("s3") paginator = client.get_paginator('list_objects') page_iterator = paginator.paginate(Bucket=bucket) for page in page_iterator: for obj in page['Contents']: print("s3://%s/%s" % (bucket, obj["Key"]))
使用更高级别的API和使用资源是正确的选择。在
import boto3 s3 = boto3.resource('s3') bucket = s3.Bucket('location2') bucket_files = [x.key for x in bucket.objects.all()]
在使用awsdk时不需要使用--recursive选项,因为它使用list_objects方法列出bucket中的所有对象。在
import boto3 client = boto3.client('s3') client.list_objects(Bucket='MyBucket')
您需要使用paginators:
使用更高级别的API和使用资源是正确的选择。在
在使用awsdk时不需要使用--recursive选项,因为它使用list_objects方法列出bucket中的所有对象。在
相关问题 更多 >
编程相关推荐