项目开发经常要把静态的文件放到七牛cdn上,文件夹中的文件需要依据路径来访问,故单个的上传文件设定路径到七牛上效率太低,使用下面的脚本文件可将整个文件夹的内容按照文件夹路径名称整体上传到七牛,免去单个设置路径上传之不便。
# -*- coding: utf-8 -*-
'''
上传文件夹到七牛
'''
from qiniu import Auth, put_file
import os
import traceback
AK = '你的AK'
SK = '你的SK'
# 要上传的文件夹绝对路径
dir = 'C:\\tmp\public'
bucket_name = '空间名称'
q = Auth(AK, SK)
token = q.upload_token(bucket_name)
def updir(dirpath):
if os.path.isdir(dirpath):#文件夹
sublist = os.listdir(dirpath)
for sub in sublist:
updir(dirpath+'\\'+sub)
else:#文件
fpath, fname = os.path.split(dirpath)
patharr = fpath.split('\\')
try:
key = getKey(dirpath)
print key
ret, info = put_file(token, key, dirpath)
print ret
except:
traceback.print_exc()
def getKey(file):
key = ''
fpath, fname = os.path.split(file)
patharr = fpath.split('\\')
if len(patharr) >= 2:
key = '/'.join(patharr[2:]) + '/' + fname
else:
key = fname
return key
if __name__ == '__main__':
updir(dir)