上传对象
使用场景
您可以根据需要上传文件或者文件夹至已有的OBS桶。上传文件时,如果您需要将文件归类处理,可以先新建文件夹,然后将相关的文件上传到文件夹中。
新建文件夹的详情请参见创建文件夹。
待上传的文件可以是任何类型:文本文件、图片、视频等。
虽然OBS服务支持您将对象上传到指定region的桶里,但是华为云并不感知您对象的具体内容。如果您对象上传行为涉及跨境传输,请您确保使用本服务符合所适用的法律法规要求。
约束与限制
大小及数量限制:
- 通过OBS管理控制台上传的文件有大小和数量限制。
- 在部分支持批量上传的区域,每次最多支持100个文件同时上传,总大小不超过5GB。如果只上传1个文件,则这个文件最大为5GB。
- 在部分不支持批量上传的区域,每次只能上传1个文件,大小不超过50MB。
- 通过OBS Browser+和obsutil可以上传小于48.8TB的文件。OBS Browser+最多同时一次上传500个文件,obsutil没有上传文件数量限制。
- 通过SDK或API的PUT上传、POST上传和追加写,可以上传小于5GB的文件。
- 通过SDK或API的多段上传以及SDK的断点续传,可以上传小于48.8TB的文件。
- 您可以通过设置桶配额限制单个桶上传对象的总容量,详情请参见管理桶配额。
命名限制:
- 对象名命名规则详见对象键命名指导原则。
批量操作限制:
- 支持批量上传功能需要满足以下条件:
- OBS桶所在区域支持批量上传功能。当前支持的区域有:中国-香港、亚太-曼谷、亚太-新加坡。
- OBS桶的版本号为“3.0”。桶版本号的查看方法请参见OBS 2.0和OBS 3.0的判断方法。
文件夹上传限制:
- 控制台、OBS Browser+、obsutil支持直接上传文件夹。
其他限制:
- 在未开启多版本控制功能的情况下,如果新上传的文件和桶内文件重名,则新上传的文件会自动覆盖老文件,且不会保留老文件的ACL等信息;如果新上传的文件夹和桶内文件夹重名,则上传后会将新老文件夹合并,合并过程如遇重名文件,会使用新上传的文件夹中的文件进行覆盖。
- 在开启了多版本控制功能的情况下,如果新上传的文件和桶内文件重名,则会在老文件上新增一个版本。关于多版本的详细介绍请参见多版本控制。
上传方式
上传方式 |
说明 |
---|---|
PUT上传 (流式上传) |
当上传文件小于5GB时使用。 两种上传方式的区别请参见PUT上传和POST上传有什么区别? |
POST上传 (表单上传) |
|
多段上传 (分段上传) |
当上传文件大于5GB且小于48.8TB时使用。 详情请参见多段上传。
说明:
如果您有大量的数据(大于48.8TB)需要上传至OBS,可以参考搬迁本地数据至OBS。 |
断点续传 |
当上传大文件时,经常出现因网络不稳定或程序崩溃导致上传失败的情况。失败后再次重新上传不仅浪费资源,而且当网络不稳定时仍然有上传失败的风险。断点续传上传接口能有效地解决此类问题引起的上传失败,其原理是将待上传的文件分成若干个分段分别上传,不仅能在失败重传时节省资源提高效率,还因其对分段进行并发上传的机制能加快上传速度。 各个使用方式支持的情况请参见OBS是否支持断点续传功能? |
增量同步上传 |
将本地源路径下的所有内容同步到OBS指定目标桶,使两边内容保持一致。这里的增量同步有两层含义:1)增量,依次比较源文件和目标对象,只上传存在变化的源文件;2)同步,命令执行完成后,保证本地源路径是OBS指定目标桶的子集,即本地源路径下的所有文件均能在OBS指定目标桶中找到对应对象。 详情请参见增量同步上传对象。 |
追加写 |
追加写对象操作是指在指定桶内的一个对象尾追加上传数据,不存在相同对象键值的对象则创建新对象。 详情请参见追加写对象。 |
相关操作
您可以在上传对象时指定对象的存储类别,也可以在上传后修改对象的存储类别。
- 标准存储的对象可以修改为低频访问存储、归档存储或深度归档存储的对象。低频访问存储的对象可以修改为标准存储、归档存储或深度归档存储的对象。归档存储的对象要先恢复,才可以修改为标准存储或低频访问存储。深度归档存储的对象要先恢复,才可以修改为标准存储、低频访问存储或归档存储。对低频访问存储的对象、归档存储的对象或深度归档存储的对象进行转换,会涉及恢复费用,请根据对象的使用频率和场景择优选择。
- 低频访问存储的最低存储时间为30天,归档存储的最低存储时间为90天,深度归档存储的最低存储时间为180天。如果对象经过转换,存储时间少于最低存储时间,需要补足剩余天数的存储费用。
- 您也可以通过配置生命周期规则转换对象的存储类别,详情请参见生命周期管理。
授权其他华为账号上传对象
本案例介绍如何为其他华为账号(包含账号下的IAM用户)授予OBS上传对象的权限。
对其他华为账号授权,推荐使用桶策略。本示例以桶策略为例。
在为其他华为账号下的IAM用户授予上传对象的权限之前,需要被授权IAM用户所属账号,为该IAM用户配置允许对指定桶执行指定操作的IAM权限,允许的操作要与桶策略相同,具体操作请参见配置允许指定操作的IAM权限。
如果为其他华为账号(Tenant Administrator,该角色用户拥有除IAM外其他所有服务的管理员权限)授权,可跳过该步骤。
- 在OBS管理控制台左侧导航栏选择“对象存储”。
- 在桶列表单击目标桶的桶名称,进入“对象”页面。
- 在左侧导航栏,单击“访问权限控制>桶策略”,进入桶策略页面。
- 在“桶策略”页面,单击“创建”。
- 配置桶策略内容。
图1 配置桶策略
表1 桶策略配置说明 参数
说明
策略配置方式
根据使用习惯进行选择,此处以“可视化视图”为例
策略名称
输入自定义的桶策略名称
策略内容
效力
允许
被授权用户
- 被授权用户:其他账号
说明:
账号ID和IAM用户ID可在“我的凭证”页面获取。
输入格式:domainId/userld,可授权给多个账号,每行一个。
domainId/*表示授权给账号下的所有用户。
授权资源
- 资源范围:指定对象
- 资源路径:输入对象前缀
授权操作
- 动作范围:自定义配置
- 选择动作:PutObject(上传对象)
说明:
如果被授权账号(包含账号下的IAM用户)希望通过挂载外部桶的方式在OBS Browser+上访问此OBS桶,“授权资源”需要增加勾选“当前桶”,“授权操作”需要增加勾选自定义动作“ListBucket”。
- 被授权用户:其他账号
- 核对权限配置信息,确认无误后单击“创建”,完成桶策略创建。
- 配置成功后,被授权账号可以正常通过API或SDK完成上传操作,此外允许通过OBS Browser+挂载外部桶的方式完成上传操作,但还需要额外配置一条ListBucket的权限。暂不支持在OBS控制台访问非本账号的OBS桶。
配置ListBucket权限后,通过OBS Browser+访问添加的外部桶可能仍会出现无权限的相关提示信息。
报错原因:OBS Browser+桶详情页面的加载会调用一些其他的OBS接口,而授予的权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”,但并不影响已有权限。
上传对象失败的原因和解决方法
请参见上传对象失败处理。