create by grpchub-BunmJyo(twitter: bunmjyo) on 2023-03-22
注意环境配置:
python3 和 pip3 安装好qiniu依赖
pip3 install qiniu
# -*- coding: utf-8 -*-
'''
上传文件夹到七牛
'''
from qiniu import Auth, put_file
import os
import traceback
#export QNACCKEY=${QNAKIFI}
#export QNSECKEY=${QNSKIFI}
#export QNBUCKET=${QNBKIFI}
AK = os.environ['QNACCKEY'] # 从系统环境变量中读取qiniu的AK配置
SK = os.environ['QNSECKEY'] # 从系统环境变量中读取qiniu的SK配置
# qiniu bucket name
bucket_name = os.environ['QNBUCKET']
rlspath='lolo'
# local absoule path 要上传的文件夹绝对路径
dir = '/mnt/c/Users/code0/Documents/Axure/HTML/Promo_reco'
rplpath= (dir[1:len(dir)])
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)
ret =0
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) > 1:
# key = '' + fname
#key = '/'.join(patharr[(len(patharr)-3):]) + '/' + fname
key = '/'.join(patharr[1:]) + '/' + fname
key = key.replace(rplpath,rlspath)
else:
key = fname
print('key-g-->'+key)
return key
if __name__ == '__main__':
updir(dir)