最近在搞一些全栈的小项目, 涉及到图片的上传, 删改等操作, 想着还是用这个云服务器来整一波, 阿里云的 OSS对象存储, 40G 1年9块钱, 值得拥有!

前提

  • 购买了阿里云 OSS 服务
  • 创建了 Access Key 和 Access Key Secret
  • 创建了一个 Bucket , 虽然也可以用代码, 但没有必要
  • 安装了 Python3.8+ 环境, 和 pip install oss3

实测演示

from oss2 import Auth, Bucket, ObjectIterator

# 设置Access Key ID和Access Key Secret
access_key_id = 'LTAI5tLxxxxx'
access_key_secret = 'Pk80TXXYEDTaQxxxxxxx' # OSS服务地址, buket 的名称 (手工建的), 存储空间名称
endpoint = 'https://oss-cn-shenzhen.aliyuncs.com'
bucket_name = 'yy' auth = Auth(access_key_id, access_key_secret)
bucket = Bucket(auth, endpoint, bucket_name) bucket_path = 'https://' + bucket_name + '.' + endpoint.split('//')[-1] def put_image(local_file, file_name):
# local_file 是要上传文件的完整路径
# file_name 默认在 buket 下: a.png 表示 yy/a.png;
# a/b.png 表示 yy/a/b.png, 不存在则新建, 存在则追加
try:
with open(local_file, 'rb') as fp:
result = bucket.put_object(file_name, fp)
if result.status == 200:
# https://yy.oss-cn-shenzhen.aliyuncs.com/test/cj2.png
image_url = bucket_path + '/' + file_name
print('上传成功!, 此图片链接为: ', image_url)
except Exception as err:
print(err) def del_image(file_full_path):
file_name = file_full_path.split("com/")[-1]
bucket.delete_object(file_name) exist = bucket.object_exists(file_name)
if not exist:
print(file_name, ' 删除成功!') if __name__ == '__main__': # 上传测试
# put_image('./cjj.png', 'yg.png') # 删除
del_image('https://yy.oss-cn-shenzhen.aliyuncs.com/test/cj3.png')

小结

  • 上传 API: put_object(file_name, fp)
  • 删除API: delete_object(file_name)
  • 存在API: object_exists(file_name)

OSS 上传和删除图片 Python SDK的更多相关文章

  1. 阿里云OSS 上传文件SDK

    Aliyun OSS SDK for C# 上传文件 另外:查找的其他实现C#上传文件功能例子: 1.WPF用流的方式上传/显示/下载图片文件(保存在数据库) (文末有案例下载链接) 2.WPF中利用 ...

  2. vue实现图片的上传和删除

    目录 1 UI库使用ElementUI 2 后端使用Express + formidable模块 1 UI库使用ElementUI 安装ElementUI $ npm install --save-d ...

  3. TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片

    **TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片首先我们来看看淘宝的功能和样式:** 之后看看制作完成的演示:(由于全部功能弄成GIF有点大,限制上传大小好像在1M之内,压缩之后也有1.9 ...

  4. 微信开发中使用微信JSSDK和使用URL.createObjectURL上传预览图片的不同处理对比

    在做微信公众号或者企业微信开发业务应用的时候,我们常常会涉及到图片预览.上传等的处理,往往业务需求不止一张图片,因此相对来说,需要考虑的全面一些,用户还需要对图片进行预览和相应的处理,在开始的时候我使 ...

  5. uniapp使用阿里oss上传

    可以删除重新上传,点击图片大图等功能. <view class="uploadView"> <view class="imageView" v ...

  6. 基于SqlSugar的开发框架循序渐进介绍(26)-- 实现本地上传、FTP上传、阿里云OSS上传三者合一处理

    在前面介绍的随笔<基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式[Options]处理常规上传和FTP文件上传>中介绍过在文件上传处理的过程中,整合了本 ...

  7. dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...

  8. DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库. 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制. 试试看! 将文件拖至此处或点击上传.(这仅仅是 dropzo ...

  9. bootstrap-fileinput上传文件的插件使用总结----编辑已成功上传过的图片

    http://plugins.krajee.com/file-plugin-methods-demo 具体操作 http://plugins.krajee.com/file-preview-manag ...

  10. 图片上传5-多个图片上传,独立项目Demo和源码

    图片上传,一次性可以上传多个图片,每个图片可以有名字.URL.排序.备注等字段.这是区别于使用百度WebUploader等多图上传工具的地方. 项目相关图片 Jar包管理:Maven用到的框架:Spr ...

随机推荐

  1. SpringBoot中使用Netty实现TCP通讯,服务器主动向客户端发送数据

    简述: Springboot项目的web服务后台,web服务运行在9100端口. 后台使用netty实现了TCP服务,运行在8000端口. 启动截图如下:   pom依赖 <dependency ...

  2. Typecho弹出find Input author error怎么解决

    大多数报错的起因就是因为,有些模板归档页面的评论功能被阉割掉了 于是导致一些评论验证功能的插件爆这个错误. #解决方法有以下三种 1,编辑这些没有评论功能的页面,高级设置,关闭评论,然后发布文章. 2 ...

  3. MybatisPlus - [05] 逻辑删除

    题记部分 一.物理删除&逻辑删除 物理删除:delete from table_name where xxx = ?; 逻辑删除:update table_name set deleted = ...

  4. 腾讯地图web端请求报错113.该功能未授权

    问题描述: 请求地址:https://apis.map.qq.com/jsapi?qt=geoc&addr=%2C%2C%2C&key=你的key&output=jsonp&a ...

  5. 【ABAQUS文档笔记】实体单元特性&剪切闭锁-沙漏问题-非协调模式-混杂单元

    来自ABAQUS DOCUMENT/GETTING STARTED WITH ABAQUS/CAE /USING CONTINUUM ELEMENTS 1. 单元公式和积分 1.1 full inte ...

  6. 【Loongson】支持AXI总线接口

    概述 支持axi接口.但其实没有burst,没有cache,没有tlb,所以仿真起来全是空泡,冲突转发相关功能正确性就测不出来. 从sram改为axi:等待时间从一拍到看信号握手 主要更改/bug处: ...

  7. ubuntu install 下载安装包报错 subprocess installed post-installation script returned error exit status 10

    前言 在 ubuntu 环境下使用 sudo apt-get install 安装软件包时,会报错 XXX 为安装软件包 dpkg:error processing package XXX (--co ...

  8. selenium爬虫2

    无头浏览器简介 无头浏览器(Headless Browser)是一种没有图形用户界面的浏览器,它在后台运行,不会显示任何窗口或界面.无头浏览器通常用于自动化任务,如网页抓取.自动化测试和性能监控等. ...

  9. 找到占用磁盘最多的文件或目录,可以使用du和sort

    想要找到占用磁盘最多的文件或目录,可以使用du和sort命令:   du -h /path/to/directory | sort -rh | head -n 10 其中: du -h /path/t ...

  10. ASP.NET Core 模型验证消息的本地化新姿势

    最近在研究系统本地化的问题,不可避免要实现模型类的验证消息本地化.毕竟这些错误消息是要返回给用户的. 疑问产生 在MVC模型下,我们会使用模型类对请求参数进行绑定和验证.举个例子: public cl ...