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