使用阿里云oss SDK
依赖安装:
- pip install oss2
-
pip install aliyun-python-sdk-sts
- 版本最好是 2.7.5 或以上
- 如果要开启 crc64 循环冗余校验,需要先将 crcmod 安装好。
- 安装 python-devel 执行 yum install python-devel。
- 需要循环冗余校验,安装 crcmod 执行 pip install crcmod。
获取AccessKeyId和AccessKeySecret:
-
登录阿里云控制台。
-
将鼠标放在右上方的用户名区域,在弹出的快捷菜单中选择accesskeys。
-
系统弹出安全提示对话框,单击继续使用AccessKey。页面显示AccessKeyId和AccessKeySecret。
快速创建子账号AccessKey:
- 使用主账号登录阿里云控制台。
- 将鼠标置于页面右上方的账号图标,然后单击accesskeys。
- 在安全提示框中,单击开始使用子用户AccessKey。
- 填写RAM用户名,然后单击下一步。
- 给RAM用户授予相关权限,例如AliyunOSSFullAccess将给RAM用户授予OSS的管理权限。单击开始创建。
- 完成手机验证后,单击确定。
- 查看AccessKeyId和AccessKeySecret。然后单击下载AccessKey,下载AccessKey信息。
整体使用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # -*- coding: utf-8 -*- import oss2 endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # Suppose that your bucket is in the Hangzhou region. auth = oss2.Auth( '<Your AccessKeyID>' , '<Your AccessKeySecret>' ) bucket = oss2.Bucket(auth, endpoint, '<your bucket name>' ) # The object key in the bucket is story.txt key = 'story.txt' # Upload bucket.put_object(key, 'Ali Baba is a happy youth.' ) # Download bucket.get_object(key).read() # Delete bucket.delete_object(key) # Traverse all objects in the bucket for object_info in oss2.ObjectIterator(bucket): print (object_info.key) |
创建存储空间:
1 2 3 4 5 6 7 8 9 10 | # -*- coding: utf-8 -*- import oss2 # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 auth = oss2.Auth( '<yourAccessKeyId>' , '<yourAccessKeySecret>' ) # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com' , '<yourBucketName>' ) # 设置存储空间为私有读写权限。 bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE) |
上传文件:
1 2 3 4 5 6 7 8 9 10 | # -*- coding: utf-8 -*- import oss2 # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 auth = oss2.Auth( '<yourAccessKeyId>' , '<yourAccessKeySecret>' ) # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com' , '<yourBucketName>' ) # <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt bucket.put_object_from_file( '<yourObjectName>' , '<yourLocalFile>' ) |
下载文件:
1 2 3 4 5 6 7 8 9 10 | # -*- coding: utf-8 -*- import oss2 # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 auth = oss2.Auth( '<yourAccessKeyId>' , '<yourAccessKeySecret>' ) # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com' , '<yourBucketName>' ) # <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt bucket.get_object_to_file( '<yourObjectName>' , '<yourLocalFile>' ) |
列举文件:
1 2 3 4 5 6 7 8 9 10 11 12 | # -*- coding: utf-8 -*- import oss2 from itertools import islice # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 auth = oss2.Auth( '<yourAccessKeyId>' , '<yourAccessKeySecret>' ) # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com' , '<yourBucketName>' ) # oss2.ObjectIteratorr用于遍历文件。 for b in islice(oss2.ObjectIterator(bucket), 10 ): print (b.key) |
删除文件:
1 2 3 4 5 6 7 8 9 | # -*- coding: utf-8 -*- import oss2 # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 auth = oss2.Auth( '<yourAccessKeyId>' , '<yourAccessKeySecret>' ) # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com' , '<yourBucketName>' ) bucket.delete_object( '<yourObjectName>' ) |
------
往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现