欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

python教程

Python上传图片到七牛云储存代码

python教程 我的站长站 2022-11-19 共17人阅读

教程介绍

Python上传图片到七牛云储存代码,Typora将图片上传到七牛云对象存储中(访问速度快),七牛云免费10G。

Python代码分享

#!/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 - 文件 - 偏好设置 - 图像

[img=110,0]https://attach.wdzzz.com/forum/202211/18/015825cbh548j1wotw5wt1.png?l[/img]

按照上述图片填入

标签 七牛云
相关推荐
  • 七牛云
  • 帝国CMS七牛云同步、上传删除插件
    帝国CMS七牛云同步、上传删除插件

    插件说明适用版本帝国CMS7.5版本,UTF-8版本,其他版本请自行转码或移植。插件安装教程1、将shu文件夹上传至网站e目录。最终目录为:/e/shu/Qiniu/ 2、系统->扩展菜单分类名称:七牛云菜单名称:配置管理...

    帝国cms插件 1566 5年前
  • 七牛云生成各种尺寸样式图片缩略图教程
    七牛云生成各种尺寸样式图片缩略图教程

    我们博客网站在首页或分类列表页或其他地方或多或少都会用到缩略图,大多数都是通过timthumb.php来实现自动裁剪功能,但是这种方法裁剪的缩略图显示不太稳定,有些博客三天两头就看不到缩略图,原因有很...

    经验分享 637 5年前
  • PHP批量删除七牛云空间所有文件
    PHP批量删除七牛云空间所有文件

    七牛的云存储官方并没有提供批量删除空间文件的功能,很是不方便,可以利用根据七牛云SDK写的一个简单PHP程序,批量删除文件。delete.php需要修改的部分:<?phpecho &#39;<meta http-equiv="Content-Ty...

    php教程 77 3年前
  • 七牛云储存Kodo Browser批量下载工具
    七牛云储存Kodo Browser批量下载工具

    七牛云储存是一个非常不错的产品,用户可以免费10G空间。配合宝塔面板使用可以时时备份网站数据到七牛云中去,永远不丢失数据。七牛云注册地址:https://portal.qiniu.com/signup?code=3lno9z1a803ma...

    开发软件 232 3年前
  • 苹果cmsv10整合七牛云播放器插件
    苹果cmsv10整合七牛云播放器插件

    整合教程后台播放器管理直接添加编码为qiniuplayer的播放器,然后解压缩文件到网站/static/下覆盖。苹果cms播放器教程截图

    苹果cms模板 346 2年前