华为云用户手册

  • 方法定义 void get_object(const obs_options *options, obs_object_info *object_info, obs_get_conditions *get_conditions, server_side_encryption_params *encryption_params, obs_get_object_handler *handler, void *callback_data);
  • 方法定义 void download_file(const obs_options *options, char *key, char* version_id, obs_get_conditions *get_conditions, server_side_encryption_params *encryption_params, obs_download_file_configuration * download_file_config, obs_download_file_response_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 断点续传下载接口是利用范围下载特性实现的,是对范围下载的封装和加强。 断点续传下载接口不仅能在失败后重试下载时节省资源提高效率,还因其对分段进行并发下载的机制能加快下载速度,帮助用户快速完成下载业务;且其对用户透明,用户不用关心checkpoint文件的创建和删除、分段任务的切分、并发下载的实现等内部细节。
  • 功能说明 当下载大对象到本地文件时,经常出现因网络不稳定或程序崩溃导致下载失败的情况。失败后再次重新下载不仅浪费资源,而且当网络不稳定时仍然有下载失败的风险。断点续传下载接口能有效地解决此类问题引起的下载失败,其原理是将待下载的对象分成若干个分段分别下载,并实时地将每段下载结果统一记录在checkpoint文件中,仅当所有分段都下载成功时返回下载成功的结果,否则返回错误信息提醒用户再次调用接口进行重新下载(重新下载时因为有checkpoint文件记录当前的下载进度,避免重新下载所有分段,从而节省资源提高效率)。 您可以通过download_file进行断点续传下载。
  • 接口约束 您必须是桶拥有者或拥有恢复归档或深度归档存储对象的权限,才能恢复归档或深度归档存储对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:RestoreObject权限,如果使用桶策略则需授予RestoreObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 重复恢复归档或深度归档存储对象时在延长恢复有效期的同时,也将会对恢复时产生的恢复费用进行重复收取。产生的标准存储类别的对象副本有效期将会延长,并且收取延长时间段产生的标准存储副本费用。
  • 方法定义 void get_object(const obs_options *options, obs_object_info *object_info, obs_get_conditions *get_conditions, server_side_encryption_params *encryption_params, obs_get_object_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 对于存储类别为归档存储或深度归档存储的对象,需要确认对象的状态为“已恢复”才能对其进行下载。
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 对于存储类别为归档存储或深度归档存储的对象,需要确认对象的状态为“已恢复”才能对其进行下载。
  • 方法定义 void get_object(const obs_options *options, obs_object_info *object_info, obs_get_conditions *get_conditions, server_side_encryption_params *encryption_params, obs_get_object_handler *handler, void *callback_data);
  • 方法定义 void append_object(const obs_options *options, char *key, uint64_t content_length, const char * position, obs_put_properties *put_properties,server_side_encryption_params *encryption_params, obs_append_object_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 启用服务端加密SSE-C方式时,追加上传和初始化段一样,设置诸如x-obs-server-side-encryption之类的请求Header,后续追加上传也必须携带。 启用服务端加密SSE-KMS方式时,有且只有第一次上传且桶内不存在同名对象时,才设置诸如x-obs-server-side-encryption之类的请求Header,后续追加上传不携带,会继承之前的设置。 每次追加上传的长度不能超过对象长度上限5G的限制。 每个Appendable对象追加上传次数最多为10000次。 如果对象存储类别为COLD(归档存储)或DEEP_ARCHIVE(深度归档存储),则不能调用该接口。 如果桶设置了跨区域复制配置,则不能调用该接口。 并行文件系统不支持追加上传对象。 put_object上传的对象可覆盖append_object上传的对象,覆盖后对象变为普通对象,不可再进行追加上传。 第一次调用追加上传时,如果已存在同名的普通对象,则会抛出异常(HTTP状态码为409)。 追加上传返回的ETag是当次追加数据内容的ETag,不是完整对象的ETag。
  • 功能说明 对分段上传的封装和加强,解决上传大文件时由于网络不稳定或程序崩溃导致上传失败的问题。其原理是将待上传的文件分成若干个分段分别上传,并实时地将每段上传结果统一记录在checkpoint文件中,仅当所有分段都上传成功时返回上传成功的结果,否则返回错误信息提醒用户再次调用接口进行重新上传(重新上传时因为有checkpoint文件记录当前的上传进度,避免重新上传所有分段,从而节省资源提高效率)。 您可以通过upload_file进行断点续传上传。
  • 方法定义 1 2 3 4 5 void upload_file(const obs_options *options, char *key, server_side_encryption_params *encryption_params, obs_upload_file_configuration *upload_file_config, obs_upload_file_server_callback server_callback, obs_upload_file_response_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 断点续传上传接口传入的文件大小至少要100K。 使用SDK的断点续传接口时,必须开启断点续传选项后才能在进程再次进入时读取上一次上传的进度。
  • 接口约束 您必须是桶拥有者或拥有复制段的权限,才能复制段。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 复制段的结果不能仅根据HTTP返回头域中的status_code来判断请求是否成功,头域中status_code返回200时表示服务端已经收到请求,且开始处理复制段请求。复制是否成功会在响应消息的body中,只有body体中有ETag标签才表示成功,否则表示复制失败。
  • 功能说明 初始化分段上传任务后,通过分段上传任务的ID,复制段到指定桶中。 多段上传任务创建后,用户可以通过指定多段上传任务号,为特定的任务上传段。添加段的方式还包括调用段复制接口。允许用户将已上传对象的一部分或全部复制为段。 将源对象object复制为一个段part1,如果在复制操作之前part1已经存在,复制操作执行之后,旧的段数据part1会被新复制的段数据覆盖。复制成功后,只能列举到最新的段part1,旧的段数据将会被删除。因此在使用复制段接口时请确保目标段不存在或者已无价值,避免因复制段导致数据误删除。复制过程中源对象object无任何变化。
  • 方法定义 1 2 3 4 void copy_part(const obs_options *options, char *key, obs_copy_destination_object_info *object_info, obs_upload_part_info *copypart, obs_put_properties *put_properties, server_side_encryption_params *encryption_params,obs_response_handler *handler, void *callback_data);
  • 方法定义 1 2 3 4 void initiate_multi_part_upload(const obs_options *options, char *key,int upload_id_return_size, char *upload_id_return, obs_put_properties *put_properties, server_side_encryption_params *encryption_params, obs_response_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有初始化分段上传任务的权限,才能初始化分段上传任务。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 初始化上传段任务并上传一个或多个段之后,您必须合并段或取消多段上传任务,才能停止收取已上传的段的存储费用。仅当在合并段或取消多段上传任务之后,OBS才释放段存储并停止向您收取段存储费用。
  • 功能说明 使用多段上传特性时,用户必须首先调用创建多段上传任务接口创建任务,系统会给用户返回一个全局唯一的多段上传任务号,作为任务标识。后续用户可以根据这个标识发起相关的请求,如:上传段、合并段、列举段等。创建多段上传任务不影响已有的同名对象;同一个对象可以同时存在多个多段上传任务;每个多段上传任务在初始化时可以附加消息头信息,包括acl、用户自定义元数据和通用的HTTP消息头contentType、contentEncoding等,这些附加的消息头信息将先记录在多段上传任务元数据中。 在指定桶中初始化分段上传任务。
  • 接口约束 您必须是桶拥有者或拥有设置对象属性的权限,才能设置对象属性。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:ModifyObjectMetaData权限,如果使用桶策略则需授予ModifyObjectMetaData权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 一个对象可以有多个元数据,总大小不能超过8KB。 当前元数据名称不支持非ASCII码字符,元数据值包含非ASCII码字符时需进行base64编码。 如果不设置存储类别,对象的存储类别默认与桶的存储类别保持一致。
  • 方法定义 void set_object_metadata(const obs_options *options, obs_object_info *object_info, obs_put_properties *put_properties, server_side_encryption_params *encryption_params, obs_response_handler *handler, void *callback_data);
  • 方法定义 1 2 3 4 void put_object(const obs_options *options, char *key, uint64_t content_length, obs_put_properties *put_properties, server_side_encryption_params *encryption_params, obs_put_object_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有创建文件夹的权限,才能创建文件夹。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 创建文件夹本质上来说是创建了一个大小为0且对象名以“/”结尾的对象。 多级文件夹创建最后一级即可,比如src1/src2/src3/,创建src1/src2/src3/即可,无需创建src1/、src1/src2/。
  • 方法定义 1 2 3 4 void put_object(const obs_options *options, char *key, uint64_t content_length, obs_put_properties *put_properties, server_side_encryption_params *encryption_params, obs_put_object_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 单次上传对象大小范围是[0, 5GB]。 如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。
  • 方法定义 1 2 3 4 void put_object(const obs_options *options, char *key, uint64_t content_length, obs_put_properties *put_properties, server_side_encryption_params *encryption_params, obs_put_object_handler *handler, void *callback_data);
  • 接口约束 您必须是桶拥有者或拥有上传对象的权限,才能上传对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 单次上传对象大小范围是[0, 5GB]。 如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。
  • 接口约束 您必须是桶拥有者或拥有获取对象ACL的权限,才能获取多版本对象ACL。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObjectAcl权限,如果使用桶策略则需授予GetObjectAcl权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。
  • 功能介绍 OBS支持对桶操作进行权限控制,您可以为桶设置访问策略,指定某一个用户对某一个桶是否有权行使某一项指定操作。OBS权限控制的方式有IAM、桶策略和ACL三种,ACL按照粒度又分为桶ACL和对象ACL,本节将对多版本对象ACL接口进行详细介绍,更多权限相关内容可参见《 对象存储服务 权限配置指南》的OBS权限控制概述章节。 多版本对象ACL是跨账号场景的权限,设置授权的对象不是当前账号,也不是当前账号下的IAM用户,而是另一个华为云账号及其账号下的IAM用户;授权的范围是以对象为粒度的,一条ACL策略为一个对象设置策略,因此设置ACL策略时您必须明确指定对象名;多版本对象ACL授予的权限包括对象的访问权限和多版本对象ACL的访问权限两个方面,对象的访问权限包括对桶内对象的查看和编辑权限,多版本对象ACL的访问权限包括对多版本对象ACL策略的查看和编辑权限,详情可参见ACL权限控制方式介绍。 调用获取多版本对象ACL接口,您可以获取指定多版本对象的ACL策略。
共99354条