添加右键上传到七牛选项
Win 右键点击文件增加“上传到七牛”选项,Python 调用七牛接口上传文件
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\UploadQiniu\Command]
@="run.bat \"%1\""
保存为 AddQiniu.reg,双击运行。
如图所示:
移除右键上传到七牛选项
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\shell\UploadQiniu]
保存为 RemoveQiniu.reg,如需移除双击运行。
编写运行 python 脚本的批处理文件 run.bat
@echo off
python E:\python\UpPic\Upload.py %*
pause
exit
将 run.bat 文件放到 C:\Windows 系统目录
附上 Python 代码 Upload.py
参考七牛 sdk 文档
pyperclip 类库 可以将字符串复制到系统的剪切板中,也可以获取剪切板内容。
#!/usr/bin/python3
#-*- coding:utf-8 -*-
import os
import sys
import pyperclip
from qiniu import Auth, put_file, etag, urlsafe_base64_encode
import qiniu.config
class QiniuUpload:
def __init__(self):
if len(sys.argv)!= 2:
sys.exit('argv error!')
#需要填写你的 Access Key 和 Secret Key 请在七牛开发者中心查看
self.access_key = ''
self.secret_key = ''
self.url = ''
self.bucket_name = '' # 要上传的空间
# 获取成功路径 调用上传 Api
self.UploadQiniu(sys.argv[1])
def UploadQiniu(self, path):
#构建鉴权对象
q = Auth(self.access_key, self.secret_key)
#上传到七牛后保存的文件名
key = os.path.basename(path)
# 验证文件是否存在
is_ex = self.GetFileInf(key)
if is_ex.status_code == 200:
sys.exit('file is exist!')
#生成上传 Token,可以指定过期时间等
token = q.upload_token(self.bucket_name, key, 3600)
#要上传文件的本地路径
localfile = path
ret, info = put_file(token, key, localfile)
if info.status_code == 200:
pyperclip.copy(self.url+key)
print('upload complete: \n'+ self.url+key)
assert ret['key'] == key
assert ret['hash'] == etag(localfile)
def GetFileInf(self, filename):
from qiniu import Auth
from qiniu import BucketManager
#初始化 Auth 状态
q = Auth(self.access_key, self.secret_key)
#初始化 BucketManager
bucket = BucketManager(q)
key = filename
#获取文件的状态信息
ret, info = bucket.stat(self.bucket_name, key)
return info
assert 'hash' in ret
qn = QiniuUpload()