安裝依賴
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')