上传概述
使用场景
您可以根据需要上传文件或者文件夹至已有的OBS桶。上传文件时,如果您需要将文件归类处理,可以先新建文件夹,然后将相关的文件上传到文件夹中。
新建文件夹的详情请参见创建文件夹。
待上传的文件可以是任何类型:文本文件、图片、视频等。
虽然OBS服务支持您将对象上传到指定region的桶里,但是华为云并不感知您对象的具体内容。如果您对象上传行为涉及跨境传输,请您确保使用本服务符合所适用的法律法规要求。
约束与限制
大小及数量限制:
- OBS管理控制台支持批量上传文件,单次最多支持100个文件同时上传,总大小不超过5GB。如果只上传1个文件,则这个文件最大为5GB。
- 通过OBS Browser+和obsutil可以上传小于48.8TB的文件。OBS Browser+最多同时一次上传500个文件,obsutil没有上传文件数量限制。
- 通过SDK或API的PUT上传、POST上传和追加写,可以上传小于5GB的文件。
- 通过SDK或API的多段上传以及SDK的断点续传,可以上传小于48.8TB的文件。
- 您可以通过设置桶配额限制单个桶上传对象的总容量,详情请参见管理桶配额。
命名限制:
对象名命名规则详见对象键命名指导原则。
批量操作限制:
支持批量上传功能需要满足以下条件:
OBS桶的版本号为“3.0”。桶版本号的查看方法请参见OBS 2.0和OBS 3.0的判断方法。
文件夹上传限制:
控制台、OBS Browser+、obsutil支持直接上传文件夹。
其他限制:
- 在未开启多版本控制功能的情况下,
- 如果新上传的文件和桶内文件重名,则新上传的文件会自动覆盖老文件,且不会保留老文件的ACL等信息;
- 如果新上传的文件夹和桶内文件夹重名,则上传后会将新老文件夹合并,合并过程如遇重名文件,会使用新上传的文件夹中的文件进行覆盖。
- 在开启了多版本控制功能的情况下,如果新上传的文件和桶内文件重名,则会在老文件上新增一个版本。关于多版本的详细介绍请参见多版本控制。
对象类型
对象类型 |
上传类型 |
说明 |
---|---|---|
Normal |
通过流式上传(PUT上传)、表单上传(POST上传)生成的对象类型。 |
未开启或暂停多版本控制:同名对象多次操作,后一次完成上传的文件将覆盖前一次上传的文件,且只保留最后调用该接口完成上传的文件。 已开启多版本控制:同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。 |
Multipart |
通过多段上传生成的对象类型。 |
未开启或暂停多版本控制功能:合并段时,后一次完成合并的完整文件将覆盖前一次合并的同名文件,且只保留最后调用该接口完成合并的完整文件。 已开启多版本控制功能:合并段完成后,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。 |
Appendable |
通过追加写对象生成的对象类型。 |
可直接在对象后面追加上传内容。 |
上传方式
上传方式 |
说明 |
---|---|
流式上传(PUT上传) |
当上传文件小于5GB时使用。 PUT上传需在URL中指定对象名;POST上传提交的URL为桶域名,无需指定对象名。两者的请求行分别为: PUT /ObjectName HTTP/1.1 POST / HTTP/1.1 |
表单上传(POST上传) |
|
多段上传(分段上传) |
当上传文件大于5GB且小于48.8TB时使用。 详情请参见多段上传。
说明:
如果您有大量的数据(大于48.8TB)需要上传至OBS,可以参考搬迁本地数据至OBS和迁移第三方云厂商数据至OBS。 |
断点续传 |
当上传大文件时,经常出现因网络不稳定或程序崩溃导致上传失败的情况。失败后再次重新上传不仅浪费资源,而且当网络不稳定时仍然有上传失败的风险。断点续传上传接口能有效地解决此类问题引起的上传失败,其原理是将待上传的文件分成若干个分段分别上传,不仅能在失败重传时节省资源提高效率,还因其对分段进行并发上传的机制能加快上传速度。 各个使用方式支持的情况请参见OBS是否支持断点续传功能? |
增量同步上传 |
将本地源路径下的所有内容同步到OBS指定目标桶,使两边内容保持一致。这里的增量同步有两层含义:1)增量,依次比较源文件和目标对象,只上传存在变化的源文件;2)同步,命令执行完成后,保证本地源路径是OBS指定目标桶的子集,即本地源路径下的所有文件均能在OBS指定目标桶中找到对应对象。 详情请参见增量同步上传对象。 |
追加写对象 |
追加写对象操作是指在指定桶内的一个对象尾追加上传数据,不存在相同对象键值的对象则创建新对象。 详情请参见追加写对象 |
授权第三方上传 |
当第三方用户没有上传权限的时候,可以临时授权给第三方用户,在授权有效期内实现对象上传。 详情请参见授权第三方上传。 |
使用方式
OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式上传对象。