并发删除并放入aws s3存储桶

2024-09-30 20:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个每天运行的step函数,在s3中删除旧对象并写入新对象

它基本上可以正常工作,但偶尔会正常工作一次,它不会先删除旧对象,而是先写入新对象,然后删除bucket中所有不需要的对象

try:
    s3sc = get_boto().client("s3")
    s3_resource = boto3.resource('s3')
    out_buffer = io.BytesIO()
    write_df.to_parquet(
      out_buffer, compression="gzip", engine="pyarrow", index=False
     )
    for obj in bucket.objects.filter(Prefix="main_bucket/sub_folder1/sub_folder2"):
         s3_resource.Object(bucket.name,obj.key).delete()

    s3sc.put_object(
      Bucket=bucket_name,
      Key=prefix,
      Body=out_buffer.getvalue(),
     )
   print("Data Written Successfully.")
except Exception as e:
   print("Error",e)

cloudwatch日志中没有错误。有人能在这个问题上指导我吗


Tags: 对象函数nameobjgets3bucketbuffer