对象存储服务 OBS-Java SDK接口概览(Java SDK):对象相关接口

时间:2024-12-11 15:52:26

对象相关接口

对象相关接口如下所示。

表3 对象相关接口概览

接口名

方法

功能描述

示例代码源代码

流式上传

obsClient.putObject(PutObjectRequest request)

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

ObjectOperationsSample

文件上传

obsClient.putObject(PutObjectRequest request)

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

-

获取上传进度

PutObjectRequest.setProgressListener(ProgressListener progressListener)

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

-

创建文件夹

obsClient.putObject(PutObjectRequest request)

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

CreateFolderSample

设置对象元数据

obsClient.setObjectMetadata(SetObjectMetadataRequest request)

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

ObjectMetaSample

初始化分段上传任务

obsClient.initiateMultipartUpload(InitiateMultipartUploadRequest request)

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

SimpleMultipartUploadSample

上传段

obsClient.uploadPart(UploadPartRequest request)

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

SimpleMultipartUploadSample

合并段

obsClient.completeMultipartUpload(CompleteMultipartUploadRequest request)

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

SimpleMultipartUploadSample

取消分段上传任务

obsClient.abortMultipartUpload(AbortMultipartUploadRequest request)

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

-

列举已上传的段

obsClient.listParts(ListPartsRequest request)

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

ConcurrentUploadPartSample

列举分段上传任务

obsClient.listMultipartUploads(ListMultipartUploadsRequest request)

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

-

设置对象生命周期

obsClient.putObject(PutObjectRequest request)

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

-

追加上传

obsClient.appendObject(AppendObjectRequest request)

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

-

断点续传上传

obsClient.uploadFile(UploadFileRequest request)

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

-

基于表单上传

obsClient.createPostSignature(PostSignatureRequest request)

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

PostObjectSample

流式下载

obsClient.getObject(GetObjectRequest request)

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

DownloadSample

范围下载

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)

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

ObjectMetaSample

恢复归档存储对象

obsClient.restoreObject(RestoreObjectRequest request)

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

RestoreObjectSample

断点续传下载

obsClient.downloadFile(DownloadFileRequest request)

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

-

下载对象接口实现图片处理

obsClient.getObject(GetObjectRequest request)

下载图片文件时,通过传入图片处理参数对图片文件进行图片剪切、图片缩放、图片水印、格式转换等处理。

-

临时授权方式实现图片处理

obsClient.createTemporarySignature(TemporarySignatureRequest request)

通过临时授权方式传入图片处理参数,对图片文件进行图片剪切、图片缩放、图片水印、格式转换等处理。

-

设置对象元数据

obsClient.setObjectMetadata(SetObjectMetadataRequest request)

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

-

获取对象元数据

obsClient.getObjectMetadata(GetObjectMetadataRequest request)

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

-

设置对象ACLs

obsClient.setObjectAcl(SetObjectAclRequest request)

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

ObjectOperationsSample

获取对象ACLs

obsClient.getObjectAcl(GetObjectAclRequest request)

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

ObjectOperationsSample

列举对象

obsClient.listObjects(ListObjectsRequest request)

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

ListObjectsSample

删除对象

obsClient.deleteObject(DeleteObjectRequest request)

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

ObjectOperationsSample

批量删除对象

obsClient.deleteObjects(DeleteObjectsRequest deleteRequest)

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

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

DeleteObjectsSample

复制对象

obsClient.copyObject(CopyObjectRequest request)

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

ObjectOperationsSample

分段复制

obsClient.copyPart(CopyPartRequest request)

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

ConcurrentCopyPartSample

判断对象是否存在

doesObjectExist(final GetObjectMetadataRequest request)

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

-

support.huaweicloud.com/sdk-java-devg-obs/obs_21_0002.html