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 = "![](http://%s.%s/%s)" % (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)
发布了23 篇原创文章 · 获赞 0 · 访问量 729

猜你喜欢

转载自blog.csdn.net/NickDeCodes/article/details/104233011