更新时间:2024-05-31 GMT+08:00

上传对象

使用场景

您可以根据需要上传文件或者文件夹至已有的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的文件。
  • 您可以通过设置桶配额限制单个桶上传对象的总容量,详情请参见管理桶配额

命名限制:

批量操作限制:

  • 支持批量上传功能需要满足以下条件:
    1. OBS桶所在区域支持批量上传功能。当前支持的区域有:中国-香港、亚太-曼谷、亚太-新加坡。
    2. 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指定目标桶中找到对应对象。

详情请参见增量同步上传对象

追加写

追加写对象操作是指在指定桶内的一个对象尾追加上传数据,不存在相同对象键值的对象则创建新对象。

详情请参见追加写对象

使用方式

OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式上传对象。

支持的使用方式

参考文档

控制台

上传文件

SDK

OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。

API

对象操作

OBS Browser+

拖拽上传

obsutil

上传对象

相关操作

您可以在上传对象时指定对象的存储类别,也可以在上传后修改对象的存储类别。

  • 标准存储的对象可以修改为低频访问存储、归档存储或深度归档存储的对象。低频访问存储的对象可以修改为标准存储、归档存储或深度归档存储的对象。归档存储的对象要先恢复,才可以修改为标准存储或低频访问存储。深度归档存储的对象要先恢复,才可以修改为标准存储、低频访问存储或归档存储。对低频访问存储的对象、归档存储的对象或深度归档存储的对象进行转换,会涉及恢复费用,请根据对象的使用频率和场景择优选择。
  • 低频访问存储的最低存储时间为30天,归档存储的最低存储时间为90天,深度归档存储的最低存储时间为180天。如果对象经过转换,存储时间少于最低存储时间,需要补足剩余天数的存储费用。
  • 您也可以通过配置生命周期规则转换对象的存储类别,详情请参见生命周期管理

授权其他华为账号上传对象

本案例介绍如何为其他华为账号(包含账号下的IAM用户)授予OBS上传对象的权限。

对其他华为账号授权,推荐使用桶策略。本示例以桶策略为例。

在为其他华为账号下的IAM用户授予上传对象的权限之前,需要被授权IAM用户所属账号,为该IAM用户配置允许对指定桶执行指定操作的IAM权限,允许的操作要与桶策略相同,具体操作请参见配置允许指定操作的IAM权限

如果为其他华为账号(Tenant Administrator,该角色用户拥有除IAM外其他所有服务的管理员权限)授权,可跳过该步骤。

  1. 在OBS管理控制台左侧导航栏选择“对象存储”。
  2. 在桶列表单击目标桶的桶名称,进入“对象”页面。
  3. 在左侧导航栏,单击“访问权限控制>桶策略”,进入桶策略页面。
  4. 在“桶策略”页面,单击“创建”。
  5. 配置桶策略内容。
    图1 配置桶策略
    表1 桶策略配置说明

    参数

    说明

    策略配置方式

    根据使用习惯进行选择,此处以“可视化视图”为例

    策略名称

    输入自定义的桶策略名称

    策略内容

    效力

    允许

    被授权用户

    • 被授权用户:其他账号
      说明:

      账号ID和IAM用户ID可在“我的凭证”页面获取。

      输入格式:domainId/userld,可授权给多个账号,每行一个。

      domainId/*表示授权给账号下的所有用户。

    授权资源

    • 资源范围:指定对象
    • 资源路径:输入对象前缀
      说明:
      • 支持输入多个资源路径,单击“添加资源路径”按钮即可。
      • 您可以指定资源路径为具体对象、对象集或目录,对象前缀为空表示当前桶,*表示桶内所有对象。

        如果指定某个对象:对象名称。

        如果指定某个对象集:“对象名称前缀”+“*”、“*”+“对象名后缀”或“*”。

    授权操作

    • 动作范围:自定义配置
    • 选择动作:PutObject(上传对象)
      说明:

      如果被授权账号(包含账号下的IAM用户)希望通过挂载外部桶的方式在OBS Browser+上访问此OBS桶,“授权资源”需要增加勾选“当前桶”,“授权操作”需要增加勾选自定义动作“ListBucket”。

  6. 核对权限配置信息,确认无误后单击“创建”,完成桶策略创建。
  7. 配置成功后,被授权账号可以正常通过API或SDK完成上传操作,此外允许通过OBS Browser+挂载外部桶的方式完成上传操作,但还需要额外配置一条ListBucket的权限。暂不支持在OBS控制台访问非本账号的OBS桶。

    配置ListBucket权限后,通过OBS Browser+访问添加的外部桶可能仍会出现无权限的相关提示信息。

    报错原因:OBS Browser+桶详情页面的加载会调用一些其他的OBS接口,而授予的权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”,但并不影响已有权限。

上传对象失败的原因和解决方法

请参见上传对象失败处理。