目录

    1. 下载工具 - qshell

    qshell 是利用七牛文档上公开的 API 实现的一个方便开发者测试和使用七牛API服务的命令行工具,使用 Go 语言编写而成。目前该工具融合了七牛存储, CDN ,以及其他的一些七牛服务中经常使用到的方法对应的便捷命令。

    版本支持平台链接更新日志
    qshell v2.0.7Linux (32, 64位,arm平台), Windows(32, 64位), Mac OSX(32, 64位)下载查看

    下载qshell命令zip包,解压。你会发现,里面有多个系统的qshell命令文件。选择适合自己系统的文件,重命名为qshell。为了任意目录都能使用qshell命令,建议将qshell文件拷贝至PATH中的某一个目录。比如,本人安装了GO,并将其bin目录加入了PATH,就直接qshell拷贝到C:/Go/bin/目录下即可。

    2. 设置账号Key

    新版的qshell需要将账户信息设置在单独的文件中。下面的Administrator,改为对应的账户名。key在七牛登录后页面的【个人面板】- 【秘钥管理】可以查看。旧版的qshell命令,key设置在命令的配置文件参数中。

    C:\Users\Administrator\.qshell\account.json
    {
        "access_key" : "**************************",
        "secret_key" : "**************************"
    }
    

    或者使用命令设置

    qshell account [access_key] [secret_key]
    

    3. 批量上传

    命令格式: qshell qupload [并发数量] [配置文件名]

    upload.conf
    {
       "src_dir"            :   "D:\\qiniu\\upload_dir",
       "bucket"             :   "mybucket"
    }
    
    qshell qupload 20 upload.conf
    

    上述命令的操作是,以每秒二十次的频率,上传D盘qiniu/upload_dir目录下的文件,至bucket名为mybucket下。 比如,有文件D:/qiniu/upload_dir/te/tex.txt,上传之后在mybucket下有文件te/tex.txt,目录结构会保留,更多设置请参考官方文档。 Tips: 建议并发不要设置太高,会有文件遗漏上传。

    4. 批量下载

    命令格式: qshell qdownload [并发数量] [配置文件名]

    down.conf
    {
       "dest_dir"            :   "D:\\qiniu\\download_dir",
       "domain"             :   "http://xxx.com1.z0.glb.qiniucdn.com",  
       "bucket"             :   "mybucket",
       "prefix"             :   "test/" 
    }
    qshell  qdownload 20 down.conf
    

    上述命令的操作是,以每秒二十次的频率,从http://xxx.com1.z0.glb.qiniucdn.com 空间的mybucket,下载全部以test/开头的文件,保存在本地的D:/qiniu/download_dir目录下。 比如,在mybucket下有文件test/te/tex.txt,下载之后会有D:/qiniu/download_dir/test/te/tex.txt,目录结构会保留,更多设置请参考官方文档。

    5. 批量删除

    命令格式: qshell batchdelete [-force] [空间名] [保存待删除文件名的文本]

    删除操作无法恢复,执行batchdelete时,出于谨慎策略需要输入验证码。如果不想输入验证码,可以带上可选参数 -force。

    这里比较麻烦的是,如何获得[保存待删除文件名的文本]。

    find my_dir -type f >file_name_list.txt
    

    在Linux下可以直接使用find命令,在Windows下需要借助Cygwin执行find命令。本人实践时,先将需要操作的目录,通过qdownload命令下载到download_dir目录。然后,在download_dir目录执行上述命令,导出my_dir目录下全部文件名列表。

    # file_name_list.txt
    my_dir/testapp/requirements.txt
    my_dir/testapp/settings.py
    my_dir/testapp/test_processes.py
    my_dir/testapp/test_tasks.py
    my_dir/testapp/__init__.py
    my_dir/tests/test_stackless.py
    my_dir/tests/__init__.py
    

    最后执行batchdelete 命令删除指定bucket的文件。这里就是删除mybucket下,上述file_name_list.txt中文件名对应文件。

    qshell batchdelete  mybucket file_name_list.txt