Python实现将图片上传到基于阿里云OSS对象存储的图床
作者:redrose2100   类别:    日期:2022-09-21 14:53:47    阅读:1133 次   消耗积分:0 分

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

一、安装 oss2 依赖库

  1. 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代码如下

  1. import oss2
  2. class AliyunOss(object):
  3. def __init__(self):
  4. self.access_key_id = "LTAIxxxxxxxQVw" # 从阿里云查询到的 AccessKey 的ID
  5. self.access_key_secret = "lo1RTDxxxxxxxxxzGAqkKM" # 从阿里云查询到的 AccessKey 的Secret
  6. self.auth = oss2.Auth(self.access_key_id, self.access_key_secret)
  7. self.bucket_name = "redrose2100" # 阿里云上创建好的Bucket的名称
  8. self.endpoint = "oss-cn-hangzhou.aliyuncs.com" # 阿里云从Bucket中查询到的endpoint
  9. self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket_name)
  10. def put_object_from_file(self, name, file):
  11. """
  12. :param name: 在阿里云Bucket中要保存的文件名
  13. :param file: 本地图片的文件名
  14. :return:
  15. """
  16. self.bucket.put_object_from_file(name, file)
  17. return "https://{}.{}/{}".format(self.bucket_name, self.endpoint, name)
  18. # 此处第一个参数 img/100.png 中的img是阿里云的Bucket中事先创建好的img文件夹,第二个参数100.png是本地的图片100.png
  19. img_url = AliyunOss().put_object_from_file("img/100.png","100.png")
  20. print(img_url)

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

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

始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/378
个人成就
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
测试开发技术全栈公众号
DevOps技术交流微信群
文章分类