aws-s3-使用boto3根据路径和间隔时间进行清理删除启用版本控制的文件

前面我们做过一版清理删除的脚本。

但是 发现 针对启用了版本控制的桶是不生效的,不能永久删除,只是在版本控制中加上了一个删除标记的版本。

如果要永久删除就需要带version_id指定删除。

boto3中提供了ObjectVersion实体

使用脚本如下:

import boto3
import time
import datetime
from aws_money.settings import config


# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html

s3 = boto3.resource('s3', region_name='cn-xxxxx-1')


def delete_file_from_bucket_one(bucket_name, prefix, reserve_paths,time_interval):
    bucket = s3.Bucket(bucket_name)
    if prefix:
        print(f"获取前缀为{prefix}的文件")
        object_versions = bucket.object_versions.filter(Prefix=prefix)
    else:
        print("没有前缀筛选,默认获取全部文件")
        object_versions = bucket.object_versions.all()
    prefixs=str(prefix).replace("/","_")
    times=time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
    filename=f"{bucket_name}_{prefixs}_{times}"
    with open(f'{config["folder.root"]}/{filename}.txt', 'w') as f:
        for object_one in object_versions:
   

猜你喜欢

转载自blog.csdn.net/q383965374/article/details/103252465
今日推荐