使用Python将七牛云批量下载文件到本地

使用Python将七牛云批量下载文件到本地

  • 之前旧的域名过期了没有续费,换了个新的域名备案还没完成,因为之前七牛云图床绑定了这个域名,现在需要把这个图床文件全部下载下来。
# -*- coding: utf-8 -*-
from qiniu import Auth
from qiniu import BucketManager
import requests
import os

# 个人中心-秘钥管理获取
access_key = 'o0mE-m0dfaHhxxxxxxxxxxxxxxxxxxxxMrEhswA'
secret_key = 'ONN81ZIgnAZ0xxxxxxxxxxxxxxxxxx4l0Eei'

q = Auth(access_key, secret_key)
bucket = BucketManager(q)

# 对应七牛云的Bucket
bucket_name = 'whaimeta'
# 前缀
prefix = None
# 列举条目
limit = 1000
# 列举出除'/'的所有文件以及以'/'为分隔的所有前缀
delimiter = None
# 标记
marker = None

# 下载到本Python项目的dir文件夹之下
path = 'dir/'

ret, eof, info = bucket.list(bucket_name, prefix, marker, limit, delimiter)
for i in ret['items']:
    print(i['key'])

    # http://域名/%25E5%2593%2594%25E5%2593%2.png
    base_url = 'http://域名/'+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:
        if not os.path.exists(path):
            os.makedirs(path)

		# 这里如果命名不规范可能会报,如果报错直接跳过,输出就好了,等结束后挨个下载一下。
        try:
            file = open(path + i['key'], "wb")
            file.write(r.content)
            file.flush()
            file.close()
        except Exception as e:
            print(e)




你可能感兴趣的:(七牛云存储)