# 如何快速清空七牛的存储空间中的所有文件，并删除存储空间

- Link: https://www.ixiqin.com/2025/01/25/how-to-quickly-empty-qiniu-storage-files-and-delete-space/
- Published: 2025-01-25T14:45:54+08:00
- Author: 白宦成

如果你和我一样，有很多历史的文件存储在七牛上，但如今已经不再需要使用，那么就可以
考虑删除七牛的存储空间，来节省费用。

但七牛为了保证安全，所以要求必须删除所有的文件后才能删除空间，以避免误删除，所以
需要一个个删除所有的文件。为了快速删除七牛存储空间的文件，我写了个简单的脚本，帮助
你快速删除七牛空间下的所有文件。

具体操作可参考如下脚本，你只需要

 1. 在本地安装七牛 SDK ：`pip install qiniu`；
 2. 创建一个新文件 `run.py` 并复制下方的代码，修改其中的访问密钥和存储空间名称
 3. 执行 `python run.py` 就可以了。

    ```python
    # -*- coding: utf-8 -*-
    # 导入七牛云 SDK 所需的模块
    from qiniu import Auth
    from qiniu import BucketManager, build_batch_delete
    # 七牛云账号的访问密钥
    access_key = '你的 ACCESS Key'
    secret_key = '你的 Secret Key'
    # 要清理的存储空间名称
    bucket_name = '你要清空的空间名称'


    # 使用 AK、SK 初始化授权对象
    q = Auth(access_key, secret_key)
    # 初始化存储空间管理器
    bucket = BucketManager(q)

    # 设置每次列举的最大条目数
    limit = 1000

    # 循环列举并删除存储空间中的文件
    while True:
        # 列举存储空间中的文件
        # ret: 包含文件信息的字典
        # eof: 是否已列举完所有文件
        # info: 请求的状态信息
        ret, eof, info = bucket.list(bucket=bucket_name)
        # 从返回结果中提取文件名列表
        keys = [item['key'] for item in ret['items']]
        # 构建批量删除操作
        ops = build_batch_delete(bucket_name, keys)
        # 执行批量删除操作
        ret, info = bucket.batch(ops)
        # 检查删除操作是否成功
        if info.status_code == 200:
            print(f"success delete {len(keys)} files!")

        # 判断是否已经列举完所有文件
        if eof:
            break
        else:
            continue
    # 输出清理完成的提示信息
    print(f"delete all files in {bucket_name}")
    Code language: Python (python)
    ```

执行成功后，你会看到如下面这样的命令，接下来等他自动执行即可，你就不用做任何事情
了。

![](https://files.ixiqin.com/2025/01/25064207/image-1024x646.png)

当工具提示你 **delete all files in 你的 kodo** 名时，你就可以回到七牛控制台，删除
掉空的 kodo 了。

![](https://files.ixiqin.com/2025/01/25064516/image.png)
