更新时间:2026-01-15 GMT+08:00

Java SDK接口概览(Java SDK)

桶相关接口

桶相关接口如下所示。

表1 桶相关接口概览

接口名

方法

功能描述

示例代码源代码

创建桶

obsClient.createBucket(CreateBucketRequest request)

在当前账号按照用户指定的桶名创建一个新桶,接口支持根据用户诉求,在创建桶的同时配置桶的存储类别、区域及桶ACL等参数。

请提交工单获取。

列举桶

obsClient.listBuckets(ListBucketsRequest request)

列举当前账号所有地域下符合指定条件的桶。返回结果以桶名的字典序排序。

请提交工单获取。

删除桶

obsClient.deleteBucket(String bucketName)

桶为空时,用户可以删除桶,以免占用桶数量配额。删除桶后需要等待30分钟才能创建同名桶。

请提交工单获取。

判断桶是否存在

obsClient.headBucket(String bucketName)

判断指定桶名的桶是否存在,返回的结果中HTTP状态码为200表明桶存在,否则返回404表明桶不存在。

请提交工单获取。

获取桶元数据

obsClient.getBucketMetadata(BucketMetadataInfoRequest request)

获取指定桶的相关信息,包括指定桶的存储类别、区域位置、跨域资源共享(CORS)规则、冗余策略等信息。

请提交工单获取。

设置桶ACLs

obsClient.setBucketAcl(String bucketName,AccessControlList acl)

设置指定桶的ACL。

请提交工单获取。

获取桶ACLs

obsClient.getBucketAcl(String bucketName)

获取指定桶的ACL。

请提交工单获取。

设置桶策略

obsClient.setBucketPolicy(String bucketName, String policy)

配置桶的策略,如果桶已存在策略,那么当前请求中的策略将完全覆盖桶中现存的策略。

请提交工单获取。

获取桶策略

obsClient.getBucketPolicy(String bucketName)

获取指定桶的桶策略。

请提交工单获取。

删除桶策略

obsClient.deleteBucketPolicy(String bucketName)

删除指定桶的桶策略。无论桶的策略本身是否存在,删除成功后系统都直接返回“204 No Content”的结果。

请提交工单获取。

获取桶区域位置

obsClient.getBucketLocation(String bucketName)

获取桶所在的区域位置。

请提交工单获取。

获取桶存量信息

obsClient.getBucketStorageInfo(String bucketName)

获取桶的存量信息,包括桶已使用的空间大小以及桶包含的对象个数。

请提交工单获取。

设置桶配额

obsClient.setBucketQuota(String bucketName, BucketQuota bucketQuota)

设置桶的配额限制来控制桶内允许上传的对象总容量,超过设置的对象容量后,上传对象会失败。

请提交工单获取。

获取桶配额

obsClient.getBucketQuota(String bucketName)

获取指定桶的配额值。桶配额为0代表桶容量没有上限。

请提交工单获取。

设置桶存储类别

obsClient.setBucketStoragePolicy(String bucketName, BucketStoragePolicyConfiguration bucketStorage)

设置指定桶的存储类别。设置桶的存储类别后,如果上传对象、复制对象和初始化多段上传任务时未指定对象的存储类别,则该对象的存储类别默认与桶的存储类别保持一致。

请提交工单获取。

获取桶存储类别

obsClient.getBucketStoragePolicy(String bucketName)

获取指定桶的存储类别。

请提交工单获取。

设置桶清单规则

obsClient.setInventoryConfiguration(SetInventoryConfigurationRequest request)

定期生成桶内对象的相关信息,保存在CSV格式的文件中,并上传到您指定的桶中,方便您管理桶内对象。指定的对象内容包括对象版本、大小、上次修改时间、存储类别等。

请提交工单获取。

获取桶清单规则

obsClient.getInventoryConfiguration(GetInventoryConfigurationRequest request)

获取指定桶的清单规则,可以通过配置规则id来选择指定清单规则。

请提交工单获取。

列举桶清单规则

obsClient.listInventoryConfiguration(ListInventoryConfigurationRequest request)

列举指定桶的所有清单配置,获取到的清单配置一次性返回,不分页。

请提交工单获取。

删除桶清单规则

obsClient.deleteInventoryConfiguration(DeleteInventoryConfigurationRequest request)

删除指定桶的清单配置(通过清单规则id来指定确认要删除的桶清单规则)。

请提交工单获取。

对象相关接口

对象相关接口如下所示。

表2 对象相关接口概览

接口名

方法

功能描述

示例代码源代码

流式上传

obsClient.putObject(PutObjectRequest request)

通过流式上传方式将本地文件上传至OBS指定的位置,支持上传小于5GB的文件。待上传的文件可以是任何类型:文本文件、图片、视频等。

请提交工单获取。

文件上传

obsClient.putObject(PutObjectRequest request)

将本地文件直接通过Internet上传至OBS指定的桶中。待上传的文件可以是任何类型:文本文件、图片、视频等。

-

获取上传进度

PutObjectRequest.setProgressListener(ProgressListener progressListener)

获取指定对象的上传进度。

-

创建文件夹

obsClient.putObject(PutObjectRequest request)

在已创建的桶中新建一个文件夹,从而更方便地对存储在OBS中的数据进行分类管理。

请提交工单获取。

设置对象元数据

obsClient.setObjectMetadata(SetObjectMetadataRequest request)

在上传对象时设置对象属性。对象属性包含对象长度、对象MIME类型、对象MD5值(用于校验)、对象存储类别、对象自定义元数据。对象属性可以在多种上传方式下(流式上传、文件上传、分段上传),或复制对象时进行设置。

请提交工单获取。

初始化分段上传任务

obsClient.initiateMultipartUpload(InitiateMultipartUploadRequest request)

使用分段上传方式传输数据前,必须先通知OBS初始化一个分段上传任务。该操作会返回一个OBS服务端创建的全局唯一标识(Upload ID),用于标识本次分段上传任务。

请提交工单获取。

上传段

obsClient.uploadPart(UploadPartRequest request)

初始化分段上传任务后,通过分段上传任务的ID,上传段到指定桶中。

请提交工单获取。

合并段

obsClient.completeMultipartUpload(CompleteMultipartUploadRequest request)

通过分段上传任务的ID和对应已上传的段信息(包括PartNumber和ETag),合并成一个完整的对象。

请提交工单获取。

取消分段上传任务

obsClient.abortMultipartUpload(AbortMultipartUploadRequest request)

通过分段上传任务的ID,取消指定桶中的分段上传任务。

-

列举已上传的段

obsClient.listParts(ListPartsRequest request)

通过分段上传任务的ID,列举指定桶中已上传的段。

请提交工单获取。

列举分段上传任务

obsClient.listMultipartUploads(ListMultipartUploadsRequest request)

列举指定桶中所有的初始化后还未合并或还未取消的分段上传任务。

-

设置对象生命周期

obsClient.putObject(PutObjectRequest request)

OBS支持用户配置指定的规则,实现定时删除桶中的对象或者定时转换对象的存储类别,从而节省存储费用。此接口设置的对象过期时间,其优先级高于桶生命周期规则。

-

追加上传

obsClient.appendObject(AppendObjectRequest request)

对同一个对象追加数据内容。

-

断点续传上传

obsClient.uploadFile(UploadFileRequest request)

对分段上传的封装和加强,解决上传大文件时由于网络不稳定或程序崩溃导致上传失败的问题。

-

基于表单上传

obsClient.createPostSignature(PostSignatureRequest request)

使用HTML表单形式上传对象到指定桶中,对象最大不能超过5GB。

请提交工单获取。

流式下载

obsClient.getObject(GetObjectRequest request)

根据需要通过流式下载将存储在OBS中的指定对象下载到本地。接口返回的ObsObject实例包含对象所在的桶、对象名、对象属性、对象输入流等内容,同时可以通过操作对象输入流将对象的内容读取到本地文件或者内存中。

请提交工单获取。

范围下载

obsClient.getObject(GetObjectRequest request)

如果只需要下载对象的其中一部分数据,可以使用范围下载,下载指定范围的数据。

-

获取下载进度

GetObjectRequest.setProgressListener(ProgressListener progressListener)

获取指定对象的下载进度。

-

限定条件下载

obsClient.getObject(GetObjectRequest request)

下载对象时,可以指定一个或多个限定条件,满足限定条件时则进行下载,否则返回异常码,下载对象失败。

-

重写响应头

obsClient.getObject(GetObjectRequest request)

下载对象时,可以重写HTTP/HTTPS中部分响应头的信息:Content-Type、Content-Language、Expires、Cache-Control、Content-Disposition、Content-Encoding。

-

获取自定义元数据

obsClient.getObject(GetObjectRequest request)

本接口可以在下载对象成功后返回对象的自定义元数据。

请提交工单获取。

恢复冷存储对象

obsClient.restoreObject(RestoreObjectRequest request)

如果要下载冷存储对象,需要先将冷存储对象恢复。恢复冷存储对象的恢复选项可支持标准恢复、快速恢复。

请提交工单获取。

断点续传下载

obsClient.downloadFile(DownloadFileRequest request)

对范围下载的封装和加强,解决下载大对象到本地时由于网络不稳定或程序崩溃导致下载失败的问题。

-

设置对象元数据

obsClient.setObjectMetadata(SetObjectMetadataRequest request)

对指定桶中的对象发送HEAD请求,设置对象的元数据信息。

-

获取对象元数据

obsClient.getObjectMetadata(GetObjectMetadataRequest request)

对指定桶中的对象发送HEAD请求,获取对象的元数据信息。

-

设置对象ACLs

obsClient.setObjectAcl(SetObjectAclRequest request)

在上传对象时设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改ACL 。

请提交工单获取。

获取对象ACLs

obsClient.getObjectAcl(GetObjectAclRequest request)

通过接口获取指定桶中对象的ACL访问权限,返回信息包含指定对象的权限控制列表信息。

请提交工单获取。

列举对象

obsClient.listObjects(ListObjectsRequest request)

列举指定桶内的部分或所有对象的描述信息。还可以通过设置前缀、数量、起始位置等参数,返回符合筛选条件的对象信息。返回结果以对象名的字典序排序。

请提交工单获取。

删除对象

obsClient.deleteObject(DeleteObjectRequest request)

根据需要删除指定桶中的对象,节省空间和成本。

请提交工单获取。

批量删除对象

obsClient.deleteObjects(DeleteObjectsRequest deleteRequest)

根据需要批量删除指定桶中的多个对象,节省空间和成本。

批量删除对象用于将一个桶内的部分对象一次性删除,删除后不可恢复。批量删除对象要求返回结果里包含每个对象的删除结果。

请提交工单获取。

复制对象

obsClient.copyObject(CopyObjectRequest request)

为指定桶中的对象创建一个副本。在单次操作中,可以创建最大5GB的对象副本。

请提交工单获取。

分段复制

obsClient.copyPart(CopyPartRequest request)

初始化分段上传任务后,通过分段上传任务的ID,复制段到指定桶中。

请提交工单获取。

判断对象是否存在

doesObjectExist(final GetObjectMetadataRequest request)

判断对象是否存在,返回的结果中HTTP状态码为200表明对象存在,否则返回404表明对象或桶不存在。

-

临时授权访问相关接口

临时授权访问相关接口如下所示。

表3 临时授权访问相关接口概览

接口名

方法

功能描述

示例代码源代码

通过临时URL访问OBS

obsClient.createTemporarySignature(TemporarySignatureRequest request)

通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,可将该URL提供给其他用户进行临时访问。在生成URL时,您需要指定URL的有效期来限制访客用户的访问时长。

如果您想授予其他用户对桶或对象临时进行其他操作的权限(例如上传或下载对象),则需要生成带对应请求的URL后(例如使用生成PUT请求的URL上传对象),将该URL提供给其他用户。

请提交工单获取。

多版本控制相关接口

多版本控制相关接口如下所示。

表4 多版本控制相关接口概览

接口名

方法

功能描述

示例代码源代码

设置桶多版本状态

obsClient.setBucketVersioning(final SetBucketVersioningRequest request)

为指定桶设置多版本状态。在一个桶中保留对象的多个版本,可方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。

请提交工单获取。

获取桶多版本状态

obsClient.getBucketVersioning(final BaseBucketRequest request)

获取指定桶的多版本状态。

请提交工单获取。

获取多版本对象

obsClient.getObject(GetObjectRequest request)

获取指定多版本对象。

-

复制多版本对象

obsClient.copyObject(CopyObjectRequest request)

为指定桶中的多版本对象创建一个副本。在单次操作中,可以创建最大5GB的对象副本。

-

恢复多版本冷存储对象

obsClient.restoreObject(RestoreObjectRequest request)

通过接口传入版本号,恢复多版本冷存储对象。

如果要下载冷存储对象,需要先将冷存储对象恢复。恢复冷存储对象的恢复选项可支持标准恢复、快速恢复。

-

列举多版本对象

obsClient.listVersions(ListVersionsRequest request)

列举指定桶内的部分或所有多版本对象的描述信息。还可以通过设置前缀、数量、起始位置等参数,返回符合您筛选条件的多版本对象信息。返回结果以多版本对象名的字典序排序。

请提交工单获取。

设置多版本对象权限

obsClient.setObjectAcl(SetObjectAclRequest request)

在上传多版本对象时,设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改或者获取ACL。

-

获取多版本对象权限

obsClient.getObjectAcl(GetObjectAclRequest request)

获取指定桶的获取多版本对象权限。

-

删除多版本对象

obsClient.deleteObject(DeleteObjectRequest request)

根据需要删除指定桶中的多版本对象,节省空间和成本。

-

批量删除多版本对象

obsClient.deleteObjects(DeleteObjectsRequest deleteRequest)

根据需要批量删除指定桶中的多个多版本对象,节省空间和成本。

批量删除对象用于将一个桶内的部分多版本对象一次性删除,删除后不可恢复。批量删除多版本对象要求返回结果里包含每个多版本对象的删除结果。

请提交工单获取。

生命周期管理相关接口

生命周期管理相关接口如下所示。

表5 生命周期管理相关接口概览

接口名

方法

功能描述

示例代码源代码

设置生命周期规则

obsClient.setBucketLifecycle(final SetBucketLifecycleRequest request)

为指定桶设置生命周期规则,实现定时删除桶中的对象或者定时转换对象的存储类别,从而节省存储费用

请提交工单获取。

获取生命周期规则

obsClient.getBucketLifecycle(final BaseBucketRequest request)

获取指定桶的生命周期规则。

请提交工单获取。

删除生命周期规则

obsClient.deleteBucketLifecycle(final BaseBucketRequest request)

删除指定桶的生命周期规则。

请提交工单获取。

跨域资源共享相关接口

跨域资源共享相关接口如下所示。

表6 跨域资源共享相关接口概览

接口名

方法

功能描述

示例代码源代码

设置跨域资源共享规则

obsclient.setBucketCors(final SetBucketCorsRequest request)

设置桶的跨域资源共享规则,允许客户端浏览器进行跨域请求。设置成功后,如果原规则存在则覆盖原规则。

请提交工单获取。

获取跨域资源共享规则

obsclient.getBucketCors(final BaseBucketRequest request)

获取指定桶的跨域资源共享规则。

请提交工单获取。

删除跨域规则

obsclient.deleteBucketCors(final BaseBucketRequest request)

删除指定桶的跨域资源共享规则。

请提交工单获取。

桶日志相关接口

设置访问日志相关接口如下所示。

表7 桶日志相关接口概览

接口名

方法

功能描述

示例代码源代码

设置桶日志规则

obsClient.setBucketLogging(final SetBucketLoggingRequest request)

为指定桶打开桶日志功能,并配置日志存放的目标桶。桶日志功能开启后,桶的每次操作将会产生一条日志,并将多条日志打包成一个日志文件。日志文件存放到开启日志功能的桶中,也可以存放到其他您有权限的桶中,但需要和开启日志功能的桶在同一个region中。您还可以根据需要配置日志文件的访问权限,以及日志文件的文件名前缀。

请提交工单获取。

获取桶日志规则

obsClient.getBucketLogging(final BaseBucketRequest request)

获取指定桶的日志配置。

请提交工单获取。

静态网站托管相关接口

静态网站托管相关接口如下所示。

表8 静态网站托管相关接口概览

接口名

方法

功能描述

示例代码源代码

网站文件托管

  1. obsClient.putObject(PutObjectRequest request)
  2. obsClient.setObjectAcl(SetObjectAclRequest acl)

将静态网站文件上传至OBS的桶中作为对象,并对这些对象赋予公共读权限,然后将该桶配置成静态网站托管模式,以实现在OBS上托管静态网站的目的。

-

设置托管配置

obsClient.setBucketWebsite(final SetBucketWebsiteRequest request)

为指定桶设置网站配置信息。

请提交工单获取。

获取托管配置

obsClient.getBucketWebsite(final BaseBucketRequest request)

获取指定桶的网站配置信息。

请提交工单获取。

删除托管配置

obsClient.deleteBucketWebsite(final BaseBucketRequest request)

删除指定桶的网站配置。

请提交工单获取。