zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python实现将图片上传到基于阿里云OSS对象存储的图床

Python存储阿里对象 实现 基于 图片 传到
2023-09-14 09:12:50 时间

【原文链接】Python实现将图片上传到基于阿里云OSS对象存储的图床

一、安装 oss2 依赖库

pip install oss2

二、从阿里云查询endpoint和AccessKey的相关信息

(1)登录阿里云后,搜索OSS,然后可以从如下位置,进入控制台

(2)然后点击【Bucket列表】,再点击进入已经创建好的Bucket

(1)如下为获取Endpoint,在对应的Bucket列表中点击【概览】即可查到

(2)点击头像,然后点击【AccessKey 管理】

(3)点击【查看Secret】

(4)然后就可以查到AccessKey ID 和 AccessKey Secret。

三、编写Python代码

这里创建demo.py文件,并且在同目录下放一个100.png的图片,然后编写Python代码如下

import oss2

class AliyunOss(object):

    def __init__(self):
        self.access_key_id = "LTAIxxxxxxxQVw"   # 从阿里云查询到的 AccessKey 的ID
        self.access_key_secret = "lo1RTDxxxxxxxxxzGAqkKM"  # 从阿里云查询到的 AccessKey 的Secret
        self.auth = oss2.Auth(self.access_key_id, self.access_key_secret)
        self.bucket_name = "redrose2100"  # 阿里云上创建好的Bucket的名称
        self.endpoint = "oss-cn-hangzhou.aliyuncs.com"  # 阿里云从Bucket中查询到的endpoint
        self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket_name)

    def put_object_from_file(self, name, file):
        """
        
        :param name: 在阿里云Bucket中要保存的文件名
        :param file: 本地图片的文件名
        :return: 
        """
        self.bucket.put_object_from_file(name, file)
        return "https://{}.{}/{}".format(self.bucket_name, self.endpoint, name)

# 此处第一个参数 img/100.png 中的img是阿里云的Bucket中事先创建好的img文件夹,第二个参数100.png是本地的图片100.png
img_url = AliyunOss().put_object_from_file("img/100.png","100.png")
print(img_url)

执行之后打印的结果为图片在图床中保存后的url,比如这里:https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/100.png

然后在阿里云的图床中就可以看到已经上传上去的图片了,如下: