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

【预先准备】

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

  1. 首先创建Bucket:
    • 名称要做到全局唯一,最终图床的链接就是以这里的命名开头
    • 地域如果有特殊需求可修改其他位置
    • 存储类型一般标准存储比较合适
    • 读写权限推荐改为公共读,之后作为markdown的外链图片等比较方便,也可以上传临时文件让别人下载

在这里插入图片描述

  1. 获取Access Key,可以在右侧「常用入口」中找到(ps. 吐槽一句 为什么要做这么复杂,想找什么完全找不到啊…)
    • 如果之前没有就创建一个,保存这里的AccessKey IDSecret,后面要用

在这里插入图片描述
在这里插入图片描述

  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. 最终的图片链接大致是这个格式:https://doublez-mytest.oss-cn-shanghai.aliyuncs.com/target_name.png

【一个小坑】
最开始我是在mac上通过anaconda配置的环境,但一直报错oss2找不到,最后发现问题是conda环境默认使用的还是base的python版本,要强制通过python3执行命令才可以是conda真正的版本,总是有奇奇怪怪的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doubleZ0108

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值