快捷搜索: 王者荣耀 脱发

【Python】阿里云对象存储OSS图床上传图片

【预先准备】

首先需要在阿里云购买「对象存储OSS」服务,假设已经开通服务

  1. 首先创建Bucket: 名称要做到全局唯一,最终图床的链接就是以这里的命名开头 地域如果有特殊需求可修改其他位置 存储类型一般标准存储比较合适 读写权限推荐改为公共读,之后作为markdown的外链图片等比较方便,也可以上传临时文件让别人下载
  1. 获取Access Key,可以在右侧「常用入口」中找到(ps. 吐槽一句 为什么要做这么复杂,想找什么完全找不到啊…) 如果之前没有就创建一个,保存这里的AccessKey ID和Secret,后面要用
  1. 安装python所需环境,强烈推荐python=3.6,否则安装oss2包可能有各种各样的问题 oss2 anaconda安装:conda install -c conda-forge oss2
  2. 上传本地图片(文件)代码如下,记得把里面[ ] 换成自己的就可以了
import oss2, uuid

class AliyunOss(object):

    def __init__(self):
        self.access_key_id = "[AccessKey ID]"
        self.access_key_secret = "[Secret]"
        self.auth = oss2.Auth(self.access_key_id, self.access_key_secret)
        self.bucket_name = "[doublez-mytest]"
        self.endpoint = "[oss-cn-shanghai.aliyuncs.com]"
        self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket_name)

    def put_object_from_file(self, name, file):
        self.bucket.put_object_from_file(name, file)
        return "https://{}.{}/{}".format(self.bucket_name, self.endpoint, name)

aliyunoss = AliyunOss()
img_url = aliyunoss.put_object_from_file("target_name.png", "img.png")
  1. 最终的图片链接大致是这个格式:
【一个小坑】 最开始我是在mac上通过anaconda配置的环境,但一直报错oss2找不到,最后发现问题是conda环境默认使用的还是base的python版本,要强制通过python3执行命令才可以是conda真正的版本,总是有奇奇怪怪的问题
经验分享 程序员 微信小程序 职场和发展