Python 3.x boto3.client.list_objects_v2不显示最近的文件,Python 3.6

Python 3.x boto3.client.list_objects_v2不显示最近的文件,Python 3.6,python-3.x,pandas,amazon-web-services,amazon-s3,boto3,Python 3.x,Pandas,Amazon Web Services,Amazon S3,Boto3,我试图列出最近从AWS S3 Bucket上传的文件 但下面的代码不显示顶级文件 S3_Access_Key, S3_Secret_Key, S3_Region_Name, S3_Bucket, S3_Key = Bucket_Credentials(Bucket) # My Function to get Credentials S3_Client = boto3.client('s3', aws_access_key_id=S3_Access_Key, aws_secret_access_

我试图列出最近从AWS S3 Bucket上传的文件

但下面的代码不显示顶级文件

S3_Access_Key, S3_Secret_Key, S3_Region_Name, S3_Bucket, S3_Key = Bucket_Credentials(Bucket) # My Function to get Credentials

S3_Client = boto3.client('s3', aws_access_key_id=S3_Access_Key, aws_secret_access_key=S3_Secret_Key, region_name=S3_Region_Name)

Response = S3_Client.list_objects_v2(Bucket=S3_Bucket, Prefix=S3_Key)
Response = pd.DataFrame(Response['Contents'])
S3_Contents = Response[['Key', 'LastModified', 'Size']]

S3_Contents['Files'] = [s.split('/')[-1] for s in S3_Contents['Key']]

S3_Contents = S3_Contents.sort_values(['LastModified'], ascending=[False])
print(S3_Contents[['Files', 'LastModified', 'Size']].head(10))
桶顶文件:

仅显示以下项目:

0  25f1a8d1-3f35-4c87-9b1a-64687ab48d4d.gz 2019-10-25 13:38:13+00:00   57071951
1  598dee47-1d57-4807-88a4-f29e27a82505.gz 2019-10-24 15:41:36+00:00   57713744
2  9c41617a-c7cd-4beb-98bb-7e49812dcac9.gz 2019-10-24 15:41:13+00:00   64267610
3          COMSTATCSITC2019_24Oct19.csv.gz 2019-10-24 11:19:40+00:00  136841622
AWS CLI

下面是一个命令,用于列出Amazon S3存储桶中最近修改的10个对象:

aws s3api list-objects --bucket my-bucket --prefix foo/ --query 'reverse(sort_by(Contents, &LastModified))[0:10].[Key]' --output text
博托

此脚本按与LastModified相反的顺序对对象进行排序,然后打印前10个

进口boto3 s3\u client=bot3.客户端's3' response=s3_client.list_objects_v2Bucket='my-bucket',Prefix='foo/' 排序内容=排序响应['contents',key=lambda对象:对象['lastmedited',reverse=True 对于排序内容[:10]中的对象: printobject['Key'].split'/'[-1],object['LastModified'],object['Size'] 以下代码工作:

S3_Access_Key, S3_Secret_Key, S3_Region_Name, S3_Bucket, S3_Key = Bucket_Credentials(Bucket)
S3_Resource = boto3.resource('s3', aws_access_key_id=S3_Access_Key, aws_secret_access_key=S3_Secret_Key, region_name=S3_Region_Name)
S3_Resource_Bucket = S3_Resource.Bucket(S3_Bucket)
S3_RS_Bucket_Objects = S3_Resource_Bucket.objects.filter(Prefix=S3_Key)

All_Files = []
for Object in S3_RS_Bucket_Objects:
   All_Files.append(Object.key)

Files_Uploaded = [s.split('\\')[-1] for s in Files_to_Upload]   
All_Files = [s.split('/')[-1] for s in All_Files]
Not_Uploaded = [Item for Item in Files_Uploaded if Item not in All_Files]
if len(Not_Uploaded) == 0:
    print('>> Success')
else:
    print('>> Failed: Some files not uploaded, Please cross check:\n', ', '.join(Not_Uploaded))

谢谢你的回复,但还是一样的结果。【参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考来源来源来源来源来源来源来源来源来源来源来源来源来源来源来源来源来源来源来源广州时间2019-10-1806:15:41+00:00 55579710我已在所附图片中标记了我的存储桶的一些顶部项目,这些项目由boto3.client.upload-file上传,这些项目未显示是否由于前缀?如果删除Prefix参数,它将适用于bucket中的所有对象。我已尝试使用boto3.resource执行此操作,但它会加载所有文件。您应该解释原始代码中的问题以及如何解决此问题。这将帮助未来的读者解决类似的问题,这样他们就不必通过阅读代码来破译解决方案。@jarmod,好的,对不起