You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6 KiB

1 year ago
from Util.OssUtil import *
from Util.PgUtil import *
from Util.CommonUtil import *
# 表里有哪些文件
dic = []
sql = "select * from t_hy_task_files"
results = execute_query(sql)
for result in results:
dic.append(result[2].replace('http://hzkc.oss-cn-beijing.aliyuncs.com', ''))
# 清理oss,即删除OSS上的垃圾文件
# 设置前缀和分页参数
prefix = 'Images'
max_keys = 20 # 每页显示的最大文件数量
auth = oss2.Auth(accessKeyId, accessKeySecret)
bucket = oss2.Bucket(auth, endpoint, bucketName)
# 如果你想要手动控制分页可以使用marker参数
marker = ''
is_truncated = True
delCount=0
# 遍历文件
while is_truncated:
try:
# 使用list_objects方法获取对象列表
result = oss2.ObjectIterator(bucket, prefix=prefix, marker=marker, max_keys=max_keys)
for obj in result:
if obj.key.count('/') < 3:
continue
if '/' + obj.key not in dic:
# 删除文件
#bucket.delete_object(obj.key)
# 一定要慎用
print(obj.key + "已被删除。") # 打印文件名
delCount=delCount+1
# 更新marker为下一页的起始点
marker = result.next_marker
# 检查是否还有更多的文件
is_truncated = result.is_truncated
except oss2.exceptions.OSSError as e:
# 处理异常情况
print(e)
printf("恭喜,所有垃圾文件已被删除,共删除" + str(delCount) + "个文件")
# http://hzkc.oss-cn-beijing.aliyuncs.com/Images/System/4/20240514164847051.png