import qiniuapi,fvm,global_variable
import os, json,traceback
# 需要填写你的 Access Key 和 Secret Key
access_key = ''
secret_key = ''
bucket_name = ""
bucket_domain = ""
print("七牛上传 v0.1")
print()
print("""
1. 上传到七牛云
2. 从七牛云下载
3. 查看七牛云文件
""")
op = input("请选择操作:")
if op == "1":
path = input("输入要上传的文件或文件夹路径:")
if path.strip() == "":
print("请正确输入路径")
exit()
qiniu_save_dir = input("输入七牛云保存的文件夹:")
if qiniu_save_dir.strip() == "":
print("请正确输入文件件")
exit()
if os.path.isdir(path): # 如果是文件件
q = qiniuapi.init(access_key, secret_key)
# C:\Users\mym\Desktop\重庆发票\[ID01xvhIKhAAPB].pdf
qiniuapi.upload_dir(q,bucket_name,path,qiniu_save_dir)
else:
q = qiniuapi.init(access_key, secret_key)
name = os.path.basename(path)
qiniuapi.upload_file(q,bucket_name,path,qiniu_save_dir+"/"+name)
elif op == "2":
qiniu_dir = input("输入要从七牛云下载的文件夹路径:")
local_save_dir = input("输入要保存的本地路径:")
q = qiniuapi.init(access_key, secret_key)
qiniu_dir = qiniuapi.format_qiniu_dir(qiniu_dir)
info = qiniuapi.list_file(q, bucket_name, qiniu_dir)
res = json.loads(info.text_body)
# print(res.get("items"))
for item in res.get("items"):
# print(item)
# print(item.get("key"), item.get("fsize"), item.get("type"), item.get("status"), item.get("md5"),item.get("putTime"))
# 七牛云上的文件名
qiniu_name = qiniuapi.get_name_from_qiniu( item.get("key") )
local_file = local_save_dir + "/" + qiniu_name
if os.path.exists(local_file):
print("本地存在文件 【",local_file,"】,要继续下载并覆盖本地文件吗?(y:下载并覆盖;n:不下载该文件,继续下载其他文件)")
while True:
res = input(">")
if res == "y":
try:
qiniuapi.download_file(q, bucket_domain, item.get("key"), local_save_dir)
print("下载成功 【",local_file,"】")
except:
traceback.print_exc()
break
elif res == "n":
break
else:
print("您输出的不正确,请重新输入(y:下载并覆盖;n:不下载该文件,继续下载其他文件)")
elif op == "3":
path = input("输入要查看的文件夹路径:")
q = qiniuapi.init(access_key, secret_key)
info = qiniuapi.list_file(q,bucket_name,path)
# print("info.status_code:",info.status_code)
# print("info.exception:",info.exception)
res = json.loads(info.text_body)
# print(res.get("items"))
for item in res.get("items"):
print(item.get("key"),item.get("fsize"),item.get("type"),item.get("status"),item.get("md5"))
else:
print("无此操作")
原文出处:/show_1IX7SiUOneBt.html