教程介绍
Python上传图片到七牛云储存代码,Typora将图片上传到七牛云对象存储中(访问速度快),七牛云免费10G。
Python代码分享
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/usr/bin/env python3 # -*- encoding: utf-8 -*- # author: gflik # data: 2022.10.09 import uuid import requests import sys from qiniu import Auth, put_file, etag, put_data class UploadClient: def __init__( self ): # 需要修改一下两行! access_key = "access_key" secret_key = "secret_key" # 构建鉴权对象 self .auth = Auth(access_key, secret_key) self .bucket_name = "82coco" def upload( self ,data): """ 上传二进制数据到七牛云 :param data: 二进制数据 :return: """ # 上传后保存的文件名 # 如果不指定保存的文件名称,七牛云会自动生成一个唯一的图片名称 # 哈希值 key = 'markdown_img/{}.png' . format ( str (uuid.uuid4()).replace( "-" ,"")) # 生成上传 Token,可以指定过期时间等 3600单位是s token = self .auth.upload_token( self .bucket_name, key, 3600 * 24 ) # 要上传文件的本地路径 # 将图片二进制数据上传到七牛云 ret, info = put_data(token, key, data) # print(ret) # print(info) if info.status_code = = 200 : # 上传图片成功 # 拼接完整url地址 full_url = "http://cdn.82coco.cn/" + ret[ "key" ] return full_url else : # 封装好的工具类异常需要抛出,不能私自解决异常 否则外界调用遇到异常没法解决 raise Exception(info.exception) def upload_img( self ,file_list: list ): for img in file_list: # 先判断传过来的是本地路径还是远程图片地址 if "http" = = img[: 4 ]: # 非本地图片的话可以考虑下载到本地再上传,但是没这个必要 print (img) continue else : try : print ( self .upload( open (img, "rb" ))) except : print (img + "\t上传失败" ) if __name__ = = '__main__' : if len (sys.argv) < 2 : print ( "call error,wrong image format" ) sys.exit( 1 ) # print(sys.argv) client = UploadClient() client.upload_img(sys.argv[ 1 :]) |
使用方法
将此代码解压放入Typora根目录
打开代码修改accesskey 与 secretkey(需注册七牛云账号)
打开Typora – 文件 – 偏好设置 – 图像
1
|
[img=110,0]https://attach.hu6.cc/forum/202211/18/015825cbh548j1wotw5wt1.png?l[/img] |
按照上述图片填入
© 版权声明
文章版权归作者所有,未经允许请勿转载。