Python 从剪贴板上传图片到阿里云Oss
Python 从剪贴板上传图片到阿里云Oss
图床功能
阿里云创建用户
首先创建阿里云用户 点击控制台,开通对象存储Oss功能 新建Bucket存储 点击头像,点击accesskeys创建密钥【建议使用子密钥】
环境配置
安装Python版本 #安装Python SDK pip install oss2 #安装PIL pip install pillow #安装pyperclip pip install pyperclip
代码编写
#!/usr/bin/env python # coding=utf-8 import oss2 import uuid import pyperclip import sys import time import os from PIL import Image from PIL import ImageGrab #OSS信息 AccessKeyID = "YourAccessKetID" AccessKeySecret = "YourAccessKeySecret" EndPoint = "YourEndPoint" BucketName = "YourBucketName" #存储路径 Path = "File_Path" #确定是否为图片 def is_img(ext): ext = ext.lower() if ext in [.jpg, .png, .jpeg, .bmp, .gif]: return True else: return False #查找剪贴板中是否有图片 def has_im(): if len(sys.argv) == 1: im = ImageGrab.grabclipboard() if isinstance(im, Image.Image): src_file = Path + "Oss.jpg" im.save(src_file) return src_file else: print "剪贴板中无图片" sys.exit() elif len(sys.argv) == 2: if not os.path.exists(sys.argv[1]): print "文件不存在" sys.exit() else: if not is_img(os.path.splitext(sys.argv[1])[1]): print "%s" % os.path.splitext(sys.argv[1])[1] sys.exit() else: src_file = sys.argv[1] else: print "Error in args" sys.exit() #上传的文件独立名 def oss_file_name(local_name): name = uuid.uuid4().__str__().replace("-", "").upper() Date = time.strftime(%Y-%m-%d, time.localtime(time.time())) local_name = str(local_name).rsplit(".") return "%s/%s.%s" % (Date, name, local_name[-1]) #Oss上传 def Oss(img_name, img_path): auth = oss2.Auth(AccessKeyID, AccessKeySecret) bucket = oss2.Bucket(auth, EndPoint, BucketName) bucket.put_object_from_file(img_name, img_path) #将URL复制到剪贴板 def Url_Clip(name): result_str = "" % (BucketName, EndPoint, name) pyperclip.copy(result_str) if __name__=="__main__": img_path = has_im() img_name = oss_file_name(img_path) Oss(img_name, img_path) Url_Clip(img_name)
上一篇:
IDEA上Java项目控制台中文乱码