将Python代码用于将图片上传到七牛云存储
首先,你需要安装七牛云的Python SDK,可以使用pip进行安装: ```bash pip install qiniu ``` 然后,你可以使用以下代码上传图片到七牛云: ```python from qiniu import Auth, put_file, etag import qiniu.config # 需要填写你的七牛云账号的AK和SK access_key = 'your_access_key' secret_key = 'your_secret_key' # 构建鉴权对象 q = Auth(access_key, secret_key) # 要上传的空间 bucket_name = 'your_bucket_name' # 上传后保存的文件名 key = 'your_key' # 生成上传 Token,可以指定过期时间等 token = q.upload_token(bucket_name, key, 360
教程介绍
Python上传图片到七牛云储存代码,Typora将图片上传到七牛云对象存储中(访问速度快),七牛云免费10G。
Python代码分享
#!/usr/bin/envpython3#-*-encoding:utf-8-*-#author:gflik#data:2022.10.09importuuidimportrequestsimportsysfromqiniuimportAuth,put_file,etag,put_dataclassUploadClient:def__init__(self):#需要修改一下两行!access_key="access_key"secret_key="secret_key"#构建鉴权对象self.auth=Auth(access_key,secret_key)self.bucket_name="82coco"defupload(self,data):"""上传二进制数据到七牛云:paramdata:二进制数据:return:"""#上传后保存的文件名#如果不指定保存的文件名称,七牛云会自动生成一个唯一的图片名称#哈希值key='markdown_img/{}.png'.format(str(uuid.uuid4()).replace("-",""))#生成上传Token,可以指定过期时间等3600单位是stoken=self.auth.upload_token(self.bucket_name,key,3600*24)#要上传文件的本地路径#将图片二进制数据上传到七牛云ret,info=put_data(token,key,data)#print(ret)#print(info)ifinfo.status_code==200:#上传图片成功#拼接完整url地址full_url="http://cdn.82coco.cn/"+ret["key"]returnfull_urlelse:#封装好的工具类异常需要抛出,不能私自解决异常否则外界调用遇到异常没法解决raiseException(info.exception)defupload_img(self,file_list:list):forimginfile_list:#先判断传过来的是本地路径还是远程图片地址if"http"==img[:4]:#非本地图片的话可以考虑下载到本地再上传,但是没这个必要print(img)continueelse:try:print(self.upload(open(img,"rb")))except:print(img+"\t上传失败")if__name__=='__main__':iflen(sys.argv)<2:print("callerror,wrongimageformat")sys.exit(1)#print(sys.argv)client=UploadClient()client.upload_img(sys.argv[1:])
使用方法
将此代码解压放入Typora根目录
打开代码修改accesskey与secretkey(需注册七牛云账号)
打开Typora - 文件 - 偏好设置 - 图像
[img=110,0]/d/pic20240105/41shep3krch.png?l[/img]
按照上述图片填入