【预先准备】
首先需要在阿里云购买「对象存储OSS」服务,假设已经开通服务
- 首先创建Bucket:
- 名称要做到全局唯一,最终图床的链接就是以这里的命名开头
- 地域如果有特殊需求可修改其他位置
- 存储类型一般标准存储比较合适
- 读写权限推荐改为公共读,之后作为markdown的外链图片等比较方便,也可以上传临时文件让别人下载
- 获取Access Key,可以在右侧「常用入口」中找到(ps. 吐槽一句 为什么要做这么复杂,想找什么完全找不到啊…)
- 如果之前没有就创建一个,保存这里的
AccessKey ID
和Secret
,后面要用
- 如果之前没有就创建一个,保存这里的
- 安装python所需环境,强烈推荐python=3.6,否则安装oss2包可能有各种各样的问题
- oss2 anaconda安装:
conda install -c conda-forge oss2
- oss2 anaconda安装:
- 上传本地图片(文件)代码如下,记得把里面
[ ]
换成自己的就可以了
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")
【一个小坑】
最开始我是在mac上通过anaconda配置的环境,但一直报错oss2找不到,最后发现问题是conda环境默认使用的还是base的python版本,要强制通过python3
执行命令才可以是conda真正的版本,总是有奇奇怪怪的问题