低级接口分为同步接口(阻塞接口)和异步接口(非阻塞接口)两类对于同步接口,在整个传输请求完成之前不会返回;对于异步操作,请求发送之后立刻返回,并不会等待传输请求完成。
背景信息
AliyunOASClient实例化
低级接口的入口是AliyunOASClient对象。你可以通过下面的工厂方法获取对象实例:
//初始化认证信息
ServiceCredentials credentials = new ServiceCredentials("[yourAccessKeyId]",
"[yourAccessKeySecret]");
//服务地址,如杭州
ServiceHost serviceHost = new ServiceHost("http://cn-hangzhou.oas.aliyuncs.com", 80);
//客户端配置
ClientConfiguration clientConfiguration = new ClientConfiguration();
// 方法1
AliyunOASClient aliyunOASClient = OASFactory
.aliyunOASClientFactory(serviceHost, credentials, clientConfiguration).withLogger();
// 方法2
AliyunOASClient aliyunOASClient2 = OASFactory.aliyunOASClientFactory(credentials,
"http://cn-hangzhou.oas.aliyuncs.com");
同步接口和异步接口
在AliyunOASClient中,每个功能都会有同步和异步两个接口,比如创建Vault这个功能它的同步、异步接口的定义分别如下:
/**
* 创建Vault同步接口
* @param createVaultRequest 创建Vault请求对象
* @return CreateVaultResult 对象
* @throws OASClientException 客户端异常
* @throws OASServerException 服务端异常
*/
public CreateVaultResult createVault(CreateVaultRequest createVaultRequest)
throws OASClientException, OASServerException;
/**
* 创建Vault异步接口
* @param <T> 返回对象的类型
* @param createVaultRequest 创建Vault请求对象
* @param handler 异步请求处理器
* @return ListenableFuture对象
* @throws OASClientException 客户端异常
* @throws OASServerException 服务端异常
*/
public <T> ListenableFuture<T> createVaultAsync(
CreateVaultRequest createVaultRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
二者的区别:
执行结果
同步接口
每一个同步接口都以OASRequest(或其子类)为参数,以OASResult(或其子类)为返回结果。OASRequest和OASResult的每一个成员变量均带有 getter 、 setter 和 with 方法,其中 with 方法功能与 setter 相同,但返回值是 this 引用,可用于级联操作。
下文将主要介绍同步接口的使用。其中,前四节将会介绍各个接口的请求参数和返回值,而其中出现的自定义类型将会在descriptor、其他类型一节和工具一章介绍。
OASRequest仅作为公共父类,没有实现任何方法。
OASResult包含的变量如下表所述。
成员变量 | 类型 | 含义 |
---|---|---|
requestId | String | 请求的唯一标识 |
date | Date | 请求的响应时间 |
低级接口是《OAS API手册》所定义的接口的直接映射,为方便用户查阅,下文叙述顺序与《OAS API手册-第四节》顺序保持一致,对于各个参数具体含义,请务必参阅《OAS API手册》对应的描述。
下面以创建Vault和上传Archive两个例子简单示例同步接口的使用,其他功能接口的使用均与此相似。
// 创建Vault
CreateVaultRequest createVaultRequest = new CreateVaultRequest().withVaultName("[yourVaultName]");
CreateVaultResult createVaultResult = aliyunOASClient.createVault(createVaultRequest);
String vaultId = createVaultResult.getVaultId();
// 上传Archive
File file = new File("[pathOfFileToUpload]");
String contentEtag = new ContentEtagGenerator().update(file).asHex();
String treeEtag = new TreeEtagGenerator().update(file).asHex();
UploadArchiveRequest uploadRequest = new UploadArchiveRequest()
.withVaultId(vaultId)
.withFile(file)
.withContentEtag(contentEtag)
.withTreeEtag(treeEtag);
UploadArchiveResult uploadResult = client.uploadArchive(uploadRequest);
String archiveId = uploadResult.getArchiveId();
异步接口
异步接口除了接收OASRequest作为参数外,还需要提供AsyncHandler作为回调方法,返回结果为ListenableFuture。异步接口暴露的是底层异步HTTP库的原始处理接口,用户可根据实际需要自行定制。本节仅以例子说明异步接口的基本使用方法,更详细的信息可参阅Async Http Client项目手册。
// 创建Vault
CreateVaultRequest createVaultRequest = new CreateVaultRequest()
.withVaultName("[yourVaultName]");
ListenableFuture<Response> future = aliyunOASClient.createVaultAsync(
createVaultRequest,
new AsyncCompletionHandlerBase());
// 获取结果(阻塞)
Response response = future.get();
if (response.getStatusCode() / 100 != 2) {
System.out.println("Error");
} else {
System.out.println("Vault ID: " + response.getHeader("x-oas-vault-id"));
}
日志输出
OASClient和OASClientAsync均支持日志输出,开启日志的方法如下:
// withLogger添加日志输出
AliyunOASClient aliyunOASClient = OASFactory
.aliyunOASClientFactory(serviceHost, credentials, clientConfiguration)
.withLogger();
Java SDK使用SLF4J-log4j输出日志,以下是日志打印的参考配置(log4j.properties),用户可根据实际情况进行自定义。建议用户至少打开info级别(debug和trace级别将包含更多信息)的打印,方便查看程序运行状态。当遇到问题时,用户可把相关日志打印提交给OAS技术支持。关于更详细的配置项描述,请参考log4j的官方手册。
log4j.rootLogger=INFO,stderr
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=%d %p [%c] - %m%n
自定义配置
ServiceHost
ServiceHost类是OAS服务地址对象
变量名 | 类型 | 描述 |
---|---|---|
host | String | OAS服务地址,如http://cn-hangzhou.oas.aliyuncs.com/ |
port | int | OAS服务器端口,默认为-1,即使用端口80(HTTP协议)或443(HTTPS协议) |
ClientConfiguration
ClientConfiguration可用于配置高级接口或低级接口的行为,所支持的所有配置项如下表所示。其中,使用默认的构造方法可生成默认配置,save 可保存配置至本地文件,load 可从本地文件读取配置,具体使用请参考示例。
变量名 | 类型 | 描述 |
---|---|---|
maxConnections | int | 最大总连接数,默认为200 |
connectionTimeoutMs | int | 连接超时毫秒数,默认为Integer.MAX_VALUE,即无限制 |
idleConnectionTimeoutMs | int | 连接空闲毫秒数,默认为Integer.MAX_VALUE,即无限制 |
requestTimeoutMs | int | 单个连接的最大请求毫秒数,默认为Integer.MAX_VALUE,即无限制。注意,该变量指的是请求开始到请求结束的总时间,若设置较小的值,可能会导致上传和下载等较费时的操作无法完成 |
maxRetry | int | 遇到网络出错时的最大重试数,默认为3 |
enableProxy | boolean | 是否使用代理服务器,默认为false |
proxyHost | String | 代理服务器地址,默认为空字符串 |
proxyPort | int | 代理服务器端口,默认为8080 |
proxyUsername | String | 代理服务器验证的用户名,默认为空字符串,即不需要验证 |
proxyPassword | String | 代理服务器验证的密码,默认为空字符串 |
// 生成默认配置并进行自定义
ClientConfiguration conf = new ClientConfiguration()
.withConnectionTimeoutMs(1000)
.withMaxRety(1);
// 保存配置
conf.save(new File("[pathForSavingConfiguration]"));
// 从文件加载配置
conf = ClientConfiguration.load("[pathForConfigurationFile]");
// 配置代理服务器
conf.withEnableProxy(true)
.withProxyHost("http://localhost")
.withProxyPort(8080)
.withProxyUsername("username")
.withProxyPassword("password");
Vault 操作
创建 Vault
请求参数(CreateVaultRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultName | String | 待新建的Vault的名称 |
接口定义
/**
* 创建Vault同步接口
* @param createVaultRequest 创建Vault请求对象
* @return OAS封装好的 CreateVaultResult 对象
* @throws OASClientException
* @throws OASServerException
*/
public CreateVaultResult createVault(CreateVaultRequest createVaultRequest)
throws OASClientException, OASServerException;
/**
* 创建Vault异步接口
* @param createVaultRequest 创建Vault请求对象
* @param handler 异步请求处理器
* @return ListenableFuture对象
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> createVaultAsync(
CreateVaultRequest createVaultRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(CreateVaultResult)
变量名 | 类型 | 描述 |
---|---|---|
location | String | 所创建的Vault对应的URI |
vaultId | String | 所创建的Vault的ID |
删除 Vault
请求参数(DeleteVaultRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待删除的Vault的ID |
接口定义
/**
* 删除Vault同步方法
* @param deleteVaultRequest 删除Vault请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public OASResult deleteVault(DeleteVaultRequest deleteVaultRequest)
throws OASClientException, OASServerException;
/**
* 删除Vault异步接口
* @param deleteVaultRequest 删除Vault请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> deleteVaultAsync(
DeleteVaultRequest deleteVaultRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(OASResult)
参考OASResult结构
获取 Vault 信息
请求参数(DescribeVaultRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待查询的Vault的ID |
接口定义
/**
* 获取Vault信息同步接口
* @param describeVaultRequest 获取Vault信息请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public DescribeVaultResult describeVault(
DescribeVaultRequest describeVaultRequest)
throws OASClientException, OASServerException;
/**
* 获取Vault信息异步接口
* @param describeVaultRequest 获取Vault信息请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> describeVaultAsync(
DescribeVaultRequest describeVaultRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(DescribeVaultResult)
变量名 | 类型 | 描述 |
---|---|---|
descriptor | VaultDescriptor | Vault的JSON描述 |
获取 Vault 列表
请求参数(ListVaultsRequest)
变量名 | 类型 | 描述 |
---|---|---|
limit | int | 返回列表的最大长度 |
marker | String | 列表的起始标识 |
接口定义
/**
* 获取Vault列表同步接口
* @param listVaultsRequest 获取Vault列表请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public ListVaultsResult listVaults(ListVaultsRequest listVaultsRequest)
throws OASClientException, OASServerException;
/**
* 获取Vault列表异步接口
* @param listVaultsRequest 获取Vault列表请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> listVaultsAsync(
ListVaultsRequest listVaultsRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(ListVaultsResult)
变量名 | 类型 | 描述 |
---|---|---|
marker | String | 下一次请求的起始标识 |
vaultList | List<VaultDescriptor> | Vault的JSON描述列表 |
Archive 操作
查询 Archive 元数据
请求参数(GetArchiveMetaRequest)
变量 | 类型 | 描述 |
---|---|---|
vaultId | String | 待上传的目标Vault的ID |
archiveId | String | 成功上传的Archive的ID |
接口定义
/**
* 根据VaultId、ArchiveId获得Archive的元数据信息
* @param getArchiveMetaRequest 请求对象
* @return GetArchiveMetaResult对象
* @throws OASClientException
* @throws OASServerException
*/
public GetArchiveMetaResult getArchiveMeta(GetArchiveMetaRequest getArchiveMetaRequest)
throws OASClientException, OASServerException;
响应结果
变量名 | 类型 | 描述 |
---|---|---|
descriptor | ArchiveDescriptor | Archive描述对象 |
ArchiveDescriptor结构:
变量名 | 类型 | 描述 |
---|---|---|
archiveId | String | ArchiveId字符串 |
treeEtag | String | Archive的treeEtag校验信息 |
description | String | 描述信息 |
creationDate | Date | 创建时间 |
size | long | 大小(单位:字节) |
上传 Archive
请求参数(UploadArchiveRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待上传的目标Vault的ID |
file | File | 待上传的文件,与stream为二选一参数,两者均设置时结果不确定 |
stream | InputStream | 待上传的流,与file为二选一参数,两者均设置时结果不确定 |
contentLength | long | 可选参数,待上传的长度,默认为file.length() 或stream.available() |
description | String | 可选参数,Archive的描述字段 |
contentEtag | String | Archive的校验码 |
treeEtag | String | Archive的哈希树校验码 |
接口定义
/**
* 上传Archive同步接口
* @param uploadArchiveRequest 上传Archive请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public UploadArchiveResult uploadArchive(
UploadArchiveRequest uploadArchiveRequest)
throws OASClientException, OASServerException;
/**
* 上传Archive异步接口
* @param uploadArchiveRequest 上传Archive请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> uploadArchiveAsync(
UploadArchiveRequest uploadArchiveRequest,AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(UploadArchiveResult)
变量名 | 类型 | 描述 |
---|---|---|
location | String | 成功上传的Archive的URI |
archiveId | String | 成功上传的Archive的ID |
删除 Archive
请求参数(DeleteArchiveRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待删除的Archive所属Vault的ID |
archiveId | String | 待删除的Archive的ID |
接口定义
/**
* 删除Archive同步接口
* @param deleteArchiveRequest 删除Archive请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public OASResult deleteArchive(DeleteArchiveRequest deleteArchiveRequest)
throws OASClientException, OASServerException;
/**
* 删除Archive异步请求
* @param deleteArchiveRequest 删除Archive请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> deleteArchiveAsync(
DeleteArchiveRequest deleteArchiveRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(OASResult)
参考OASResult结构
Multipart Upload 操作
初始化 Multipart Upload 任务
请求参数(InitiateMultipartUploadRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待新建任务的Vault的ID |
partSize | long | 分块的字节大小 |
description | String | Archive的描述字段 |
接口定义
/**
* 初始化Multipart上传任务同步接口
* @param initiateMultipartUploadRequest 初始化Multipart上传任务请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public InitiateMultipartUploadResult initiateMultipartUpload(
InitiateMultipartUploadRequest initiateMultipartUploadRequest)
throws OASClientException, OASServerException;
/**
* 初始化Multipart上传任务异步接口
* @param initiateMultipartUploadRequest 初始化Multipart上传任务请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> initiateMultipartUploadAsync(
InitiateMultipartUploadRequest initiateMultipartUploadRequest,
AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(InitiateMultipartUploadResult)
变量名 | 类型 | 描述 |
---|---|---|
location | String | 成功新建的任务的URI |
uploadId | String | 成功新建的任务的ID |
获取 Multipart Upload任务列表
请求参数(ListMultipartUploadsRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待查询的Vault的ID |
limit | int | 返回列表的最大长度 |
marker | String | 列表的起始标识 |
接口定义
/**
* 获取Multipart上传任务列表同步接口
* @param listMultipartUploadsRequest 获取Multipart上传任务列表请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public ListMultipartUploadsResult listMultipartUploads(
ListMultipartUploadsRequest listMultipartUploadsRequest)
throws OASClientException, OASServerException;
/**
* 获取Multipart上传任务列表异步接口
* @param listMultipartUploadsRequest 获取Multipart上传任务列表请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> listMultipartUploadsAsync(
ListMultipartUploadsRequest listMultipartUploadsRequest,
AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(ListMultipartUploadsResult)
变量名 | 类型 | 描述 |
---|---|---|
marker | String | 下一次列表查询的起始标识 |
uploadList | List<MultipartUploadDescriptor> | Mulitpart Upload的JSON描述列表 |
删除 Multipart Upload 任务
请求参数(CancelMultipartUploadRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待删除的任务所属Vault的ID。 |
uploadId | String | 待删除的任务的ID。 |
接口定义
/**
* 删除Multipart上传任务同步接口
* @param cancelMultipartUploadRequest 删除Multipart上传任务请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public OASResult cancelMultipartUpload(
CancelMultipartUploadRequest cancelMultipartUploadRequest)
throws OASClientException, OASServerException;
/**
* 删除Multipart上传任务异步接口
* @param cancelMultipartUploadRequest 删除Multipart上传任务请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> cancelMultipartUploadAsync(
CancelMultipartUploadRequest cancelMultipartUploadRequest,
AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(OASResult)
Part上传
请求参数(UploadPartRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待上传的任务所属Vault的ID |
uploadId | String | 待上传的Part所属任务的ID |
file | File | 待上传的文件,与stream为二选一参数,两者均设置时结果不确定 |
stream | InputStream | 待上传的流,与file为二选一参数,两者均设置时结果不确定 |
range | Range | 待上传的Part对应整个文件的字节范围 |
contentEtag | String | 校验字段 |
treeEtag | String | 哈希树校验信息 |
接口定义
/**
* 上传Part同步接口
* @param uploadPartRequest 上传Part请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public OASResult uploadPart(UploadPartRequest uploadPartRequest)
throws OASClientException, OASServerException;
/**
* 上传Part异步接口
* @param uploadPartRequest 上传Part请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> uploadPartAsync(
UploadPartRequest uploadPartRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(OASResult)
参考OASResult结构
获取 Part 列表
请求参数(ListPartsRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待查询的任务所属Vault的ID |
uploadId | String | 待查询的任务的ID |
limit | int | 返回列表的最大长度 |
marker | String | 列表的起始标识 |
接口定义
/**
* 获取Part列表同步接口
* @param listPartsRequest 获取Part列表请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public ListPartsResult listParts(ListPartsRequest listPartsRequest)
throws OASClientException, OASServerException;
/**
* 获取Part列表异步接口
* @param listPartsRequest 获取Part列表请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> listPartsAsync(
ListPartsRequest listPartsRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(ListPartsResult)
变量名 | 类型 | 描述 |
---|---|---|
marker | String | 下一次列表查询的起始标识 |
descriptor | MultipartUploadDescriptor | Mulitpart Upload任务的JSON描述 |
Part 合并
请求参数(CompleteMultipartUploadRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待合并的任务所属Vault的ID |
uploadId | String | 待合并的任务的ID |
size | long | 文件的字节大小 |
treeEtag | String | 哈希树校验字段 |
接口定义
/**
* Part合并同步接口
* @param completeMultipartUploadRequest Part合并请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public CompleteMultipartUploadResult completeMultipartUpload(
CompleteMultipartUploadRequest completeMultipartUploadRequest)
throws OASClientException, OASServerException;
/**
* Part合并异步接口
* @param completeMultipartUploadRequest Part合并请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> completeMultipartUploadAsync(
CompleteMultipartUploadRequest completeMultipartUploadRequest,
AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果
变量名 | 类型 | 描述 |
---|---|---|
location | String | 成功上传的Archive的URI |
archiveId | String | 成功上传的Archive的ID |
Job 操作
初始化 Job 任务
请求参数(InitiateJobRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待新建Job的Vault的ID |
archiveId | String | 待下载的Archive的ID,可选参数 |
type | JobType | Job类型 |
description | String | Job的描述字段 |
retrievalRange | Range | 待下载的Archive字节范围,可选参数 |
接口定义
/**
* 初始化Job同步接口
* @param initiateJobRequest 初始化Job请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public InitiateJobResult initiateJob(InitiateJobRequest initiateJobRequest)
throws OASClientException, OASServerException;
/**
* 初始化Job异步接口
* @param initiateJobRequest 初始化Job请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> initiateJobAsync(
InitiateJobRequest initiateJobRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(InitiateJobResult)
变量名 | 类型 | 描述 |
---|---|---|
location | String | 创建成功的Job的URI |
jobId | String | 创建成功的Job的ID |
Job Output 下载
请求参数(GetJobOutputRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待下载的Job所属Vault的ID |
jobId | String | 待下载的Job的ID |
range | Range | 待下载的字节范围 |
file | File | 保存下载结果的文件 |
接口定义
/**
* Job Output下载同步接口
* @param getJobOutputRequest Job Output下载请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public GetJobOutputResult getJobOutput(GetJobOutputRequest getJobOutputRequest)
throws OASClientException, OASServerException;
/**
* Job Output下载异步接口
* @param getJobOutputRequest Job Output下载请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> getJobOutputAsync(
GetJobOutputRequest getJobOutputRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(GetJobOutputResult)
变量名 | 类型 | 描述 |
---|---|---|
file | File | 保存下载结果的文件 |
contentEtag | String | 校验码字段,可能为空 |
range | Range | 下载的字节范围,可能为空 |
sizeTotal | long | 下载的字节长度 |
获取 Job 列表
请求参数(ListJobsRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待查询的Vault的ID |
limit | int | 返回列表的最大长度 |
marker | String | 列表的起始标识 |
接口定义
/**
* 获取Job列表同步接口
* @param listJobsRequest 获取Job列表请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public ListJobsResult listJobs(ListJobsRequest listJobsRequest)
throws OASClientException, OASServerException;
/**
* 获取Job列表异步接口
* @param listJobsRequest 获取Job列表请求对象
* @param handler 异步请求处理器
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> listJobsAsync(
ListJobsRequest listJobsRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(ListVaultsResult)
变量名 | 类型 | 描述 |
---|---|---|
marker | String | 下一次查询的起始标识 |
vaultList | List<VaultDescriptor> | Job的JSON描述列表 |
Job 任务状态查询
请求参数(DescribeJobRequest)
变量名 | 类型 | 描述 |
---|---|---|
vaultId | String | 待查询的Job所属Vault的ID |
jobId | String | 待查询的Job的ID |
接口定义
/**
* Job信息查询同步接口
* @param describeJobRequest Job信息查询请求对象
* @return
* @throws OASClientException
* @throws OASServerException
*/
public DescribeJobResult describeJob(DescribeJobRequest describeJobRequest)
throws OASClientException, OASServerException;
/**
* Job信息查询异步接口
* @param describeJobRequest Job信息查询请求对象
* @param handler
* @return
* @throws OASClientException
* @throws OASServerException
*/
public <T> ListenableFuture<T> describeJobAsync(
DescribeJobRequest describeJobRequest, AsyncHandler<T> handler)
throws OASClientException, OASServerException;
响应结果(DescribeJobResult)
变量名 | 类型 | 描述 |
---|---|---|
descriptor | JobDescriptor | Job的JSON描述 |
Descriptor
OASDescriptor是服务器返回的JSON数据的封装,以下各个类均是OASDescriptor的子类,本节仅介绍JSON标签与变量名之间的对应关系,每个JSON标签的具体含义请参阅API手册。OASDescriptor的每一个成员变量均带有getter、setter和with方法。
VaultDescriptor
VaultDescriptor是Vault的JSON描述的封装,详见API手册4.1.3节返回体。
JSON标签 | 变量名 | 类型 |
---|---|---|
CreationDate | creationDate | Date |
LastInventoryDate | lastInventoryDate | Date |
NumberOfArchives | numberOfArchives | int |
SizeInBytes | size | long |
VaultId | vaultId | String |
VaultName | vaultName | String |
MultipartUploadDescriptor
MultipartUploadDescriptor是Multipart Upload任务的JSON描述的封装,详见API手册4.3.2一节返回体。注意,当调用获取Multipart Upload任务列表接口(API手册4.3.2)时,partList为空列表。partList仅在调用获取Part列表接口(API手册4.3.5)时被设置。
JSON标签 | 变量名 | 类型 |
---|---|---|
ArchiveDescription | description | String |
CreationDate | creationDate | Date |
MultipartUploadId | uploadId | String |
PartSizeInBytes | partSize | long |
Parts | partList | List<PartDescriptor> |
PartDescriptor
PartDescriptor是Part的JSON描述的封装,详见API手册4.3.5一节返回体。
JSON标签 | 变量名 | 类型 |
---|---|---|
ContentEtag | contentEtag | String |
RangeInBytes | range | Range |
JobDescriptor
JobDescriptor是Job任务的JSON描述的封装,详见API手册4.4.4一节返回体。
JSON标签 | 变量名 | 类型 |
---|---|---|
Action | action | JobType |
ArchiveId | archiveId | String |
ArchiveSizeInBytes | archiveSize | long |
ArchiveContentEtag | archiveContentEtag | String |
Completed | completed | boolean |
CompletionDate | completionDate | Date |
CreationDate | creationDate | Date |
InventorySizeInBytes | inventorySize | long |
JobDescription | description | String |
JobId | jobId | String |
StatusCode | statusCode | JobStatus |
StatusMessage | statusMessage | String |
其他类型
JobStatus
枚举,表示Job任务状态,取值为IN_PROGRESS,SUCCEEDED和FAILED
JobType
枚举,表示Job任务类型,取值为ARCHIVE_RETRIEVAL和INVENTORY_RETRIEVAL
Range
类,范围的描述,包含start和end两个变量(long)