安装依赖
pip install qiniu
pip install requests==2.22.0
下载指定bucket所有文件
# -*- coding: utf-8 -*-
from qiniu import Auth
from qiniu import BucketManager
import requests
import os
access_key = 'r8E5bJ38C1236YULTogggg_-q5PZ1234xnCA6666'
secret_key = 'tMkR71234kc5555hfV3del3tPOHtcMrnniKg1234'
q = Auth(access_key, secret_key)
bucket = BucketManager(q)
# 空间名字
bucket_name = 'wxapp'
# 前缀
prefix = None
# 列举条目
limit = 20000
# 列举出除'/'的所有文件以及以'/'为分隔的所有前缀
delimiter = None
# 标记
marker = None
def download_all(save_path):
"""
args:
save_path:要保存的本地路径
return:
none
"""
if save_path[-1] == os.sep:
save_path = save_path[0:-1]
# 域名
domain_name = 'http://img.demo1234.com/'
ret, eof, info = bucket.list(bucket_name, prefix, marker, limit, delimiter)
for i in ret['items']:
print(i['key'])
base_url = domain_name + i['key']
print(base_url)
# 如果空间有时间戳防盗链或是私有空间,可以调用该方法生成私有链接
private_url = q.private_download_url(base_url, expires=100)
# print(private_url)
r = requests.get(private_url)
if r.content:
filename = i['key'].split('/')[-1]
dirname = os.path.dirname(i['key'])
print('dir==', dirname)
local_dir = save_path + os.sep + dirname.replace('/', os.sep) + os.sep
print('local_dir==', local_dir)
if not os.path.exists(local_dir):
os.makedirs(local_dir)
file = open(local_dir + filename, "wb")
file.write(r.content)
file.flush()
file.close()
删除指定bucket所有文件
def delete_all():
del_count = 0
print('DELETE ALL files for <{}>'.format(bucket_name))
ret, eof, info = bucket.list(bucket_name, prefix, marker, limit, delimiter)
for i in ret['items']:
del_count = del_count + 1
print('{}:{}'.format(del_count, i['key']))
ret, info = bucket.delete(bucket_name, i['key'])
说明:
填写自己的access_key和secret_key ,bucket_name 对应七牛的bucket
例如,要将bucket名为wxapp的所有图片下载到本地F盘下的qiniu_bak :
if __name__ == '__main__':
download_all('F:\\qiniu_bak')