华为上传OBS示例怎么操作,有哪些步骤?
- 前端开发
- 2026-08-13
- 7
华为云OBS上传示例的核心在于通过SDK调用putObject或上传流,只需配置好AK/SK和终端节点即可在几分钟内完成上传。
准备工作:账号与权限设置
创建OBS桶和获取访问密钥
开始上传之前,需要先拥有一个华为云账号并开通对象存储服务,登录控制台后,创建一个存储桶,注意选择与业务就近的区域,比如华北北京四或华东上海二,这直接影响上传延迟,在“我的凭证”中生成访问密钥,即AK/SK对,这是调用SDK的凭证,务必妥善保管,避免泄露。
设置桶策略与权限
如果上传的是公开文件,可以配置桶策略为公共读,否则建议使用私有桶配合临时授权URL,对于大规模上传,可以创建专门的IAM子用户,仅授予OBS写入权限,这样更安全,多数情况下,使用AK/SK直接操作即可满足需求。
华为云obs上传文件代码实战
Python SDK安装与配置
华为云OBS官方提供了Python SDK,安装非常简单:
pip install esdk-obs-python
配置时,先初始化ObsClient,需要传入AK、SK以及终端节点(endpoint),终端节点可在桶的基本信息中找到,格式如obs.cn-north-4.myhuaweicloud.com。
上传普通文件
以下代码展示如何将本地图片上传到桶中:

这是最基础的华为云obs上传文件代码示例,适合小于5MB的小文件,如果文件较大,建议使用分段上传。
上传大文件(分段上传)
对于视频或ISO镜像这类大文件,行业共识认为使用分段上传既能提升速度,又能避免单次连接中断导致重传,华为云SDK提供了直接上传文件流的方法,底层自动分片:
resp = obsClient.putFile('bucket-name', 'bigfile.iso', '本地路径/bigfile.iso')
分段大小由SDK自动管理,开发者无需关心,如果需要手动控制,可以使用initiateMultipartUpload、uploadPart、completeMultipartUpload三个接口,这样可以精确设置并发数。

华为云OBS上传示例:常见问题与优化
网络延迟与带宽影响
上传速度慢是开发者最常遇到的问题。obs上传速度慢怎么办?首先检查网络环境,如果可以,使用华为云内网ECS上传走内网流量,速度可达理论带宽上限,如果必须从公网上传,考虑使用华为云CDN加速上传,或者配置OBS的传输加速功能(需开启对应开关)。
使用加速域名
在桶的“域名管理”中绑定自定义域名并开启CDN加速,上传请求会经由最近的边缘节点转发,降低延迟,对于大文件,加速效果明显,但会产生额外流量费用,可以根据预算权衡。
分段上传优化
当单个文件超过100MB时,分段上传是最佳实践,SDK默认分段大小是9MB,但可以调整threadNum和partSize参数,在ObsClient初始化时设置:

obsClient = ObsClient(..., max_retry_count=3, socket_timeout=30, connect_timeout=10)
分段上传失败时自动重试,能有效提高成功率,相当一部分用户反馈,分段并发上传比单线程快2-3倍。
华为云对象存储上传教程:视频与图片场景
上传视频文件注意事项
视频文件通常较大,且对访问速度有要求。华为云obs上传视频时,建议优先使用分段上传,同时设置合适的Content-Type,比如video/mp4,以便浏览器直接播放,如果视频需要加密,可以使用OBS的服务端加密功能,在创建桶时指定加密方式。
图片处理与压缩
上传图片时,可以结合华为云图片处理服务,在上传后自动生成缩略图或水印,这需要配置触发器,但上传本身与普通文件一致,如果图片尺寸较大,可以先在客户端压缩再上传,节省带宽和存储费用。
表格对比不同上传方式
| 上传场景 | 推荐方式 | 适用文件大小 | 备注 |
|---|---|---|---|
| 小文件(<5MB) | 简单上传putObject | 任意小文件 | 代码简单,一次请求完成 |
| 中等文件(5-100MB) | putFile | 图片、PDF、小视频 | SDK自动处理,推荐使用 |
| 大文件(>100MB) | 分段上传(手动或自动) | 视频、ISO、数据集 | 并发上传,支持断点续传,成功率更高 |
Q&A:华为云OBS上传示例常见问题解答
问题1:华为云OBS上传速度慢怎么办?
回答:首先确认网络环境,推荐使用华为云内网ECS上传,如果从外网访问,开启OBS的传输加速功能,或绑定CDN加速域名,同时检查上传文件大小,大文件务必使用分段上传并调整并发数,一般设置5-10线程即可获得明显提升。
问题2:华为云obs上传文件代码中如何设置对象权限?
回答:在putObject或putFile方法中,可以传入acl参数,可选值为private、public-read、public-read-write等,如果不设置,默认继承桶的权限,例如putObject(..., acl='public-read')即可让对象公开访问,需要注意,如果桶是私有的,即使对象设为public-read,仍需通过签名URL访问。
问题3:上传视频到华为云obs是否需要特殊处理?
回答:不需要特殊处理,但推荐设置正确的Content-Type(如video/mp4)以便浏览器直接播放,如果视频较大,使用分段上传可避免超时,上传完成后可以为视频创建转码任务,使用华为云媒体处理服务生成不同清晰度的副本,提升用户体验。