憶の年

python简单腾讯云cos下载脚本
因为使用了cosUploadV5插件所有的图片都保存到cos了为了防止腾讯云boom所以东拼西凑了这个脚本以下是代...
扫描右侧二维码阅读全文
07
2018/09

python简单腾讯云cos下载脚本

因为使用了cosUploadV5插件所有的图片都保存到cos了
为了防止腾讯云boom所以东拼西凑了这个脚本
以下是代码渣东拼西凑的代码

# -*- coding=utf-8
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
from qcloud_cos import CosServiceError
from qcloud_cos import CosClientError

import sys
import logging
import os

# 腾讯云COSV5Python SDK, 目前可以支持Python2.6与Python2.7以及Python3.x
# pip安装指南:pip install -U cos-python-sdk-v5
# cos最新可用地域,参照https://www.qcloud.com/document/product/436/6224

logging.basicConfig(level=logging.INFO, stream=sys.stdout)

# 设置用户属性, 包括secret_id, secret_key, region
# appid已在配置中移除,请在参数Bucket中带上appid。Bucket由bucketname-appid组成

secret_id = 'AKIDylkNDVyT8uJF9K5PXfebguxvF'     # 替换为用户的secret_id
secret_key = 'MWZIQqpDwRbkskqGfY8pr9s7y'     # 替换为用户的secret_key
region = 'ap-guangzhou'    # 替换为用户的region
token = None               # 使用临时秘钥需要传入Token,默认为空,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token)  # 获取配置对象
client = CosS3Client(config)

#列出usr目录下的文件
response = client.list_objects(
    Bucket='typecho-12513921', #替换为自己的空间名
    Delimiter='',
    MaxKeys=1000,
    Prefix='usr',
    EncodingType='url'
)
dict=response['Contents'] #取出Contents后的数组
list=dict
list1=list.pop(0) #移除列表中的第0个元素

def mkdir(path):
    path=path.strip()  # 去除首位空格
    path=path.rstrip("\\")  # 去除尾部 \ 符号
    isExists=os.path.exists(path)  # 判断路径是否存在 存在True不存在False
     # 判断结果
    if not isExists:
        os.makedirs(path)  # 创建目录操作函数
#        print path+' 创建成功'
        return True
    else:
#        print path+' 目录已存在'
        return False # 如果目录存在则不创建,并提示目录已存在

#遍历数组
for item in list: 
    file_name= item['Key'] #取出文件路径和文件名
    root ='/' +  file_name.split("/")[0] + '/' + file_name.split("/")[1] + '/' + file_name.split("/")[2] + '/' + file_name.split("/")[3]  #切片取出目录 
    mkpath='/www/wwwroot/529i.com' + root #构造下载目录
    mkdir(mkpath) #调用mkdir函数创建目录

    path = mkpath + '/' + file_name.split("/")[-1]  #构造下载目录和文件名
#    print path
#下载文件
    response = client.get_object(
    Bucket='typecho-12513921',
    Key=file_name,
    )
    response['Body'].get_stream_to_file(path)

记得关闭腾讯cos储存桶的防盗链

以上代码保存为xx.py定时执行就ok了
python2.7测试ok

Last modification:September 30th, 2018 at 08:03 am

2 comments

  1. alan

    调用了下会报取出conetnet后数组的问题

    1. 憶の年
      @alan

      错误日志是什么样的我这里没有问题的,

Leave a Comment