低级接口分为同步接口(阻塞接口)和异步接口(非阻塞接口)两类
对于同步接口,在整个传输请求完成之前不会返回;对于异步操作,请求发送之后立刻返回,并不会等待传输请求完成。
AliyunOASClient——低级接口的入口
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;
二者的区别:
- 命名上异步接口均以Async字眼结尾以示区别;
- 同步接口返回的均是OAS解析后的结果类;异步接口返回的是ListenableFuture对象,关于ListenableFuture的使用请参考 AsyncHttpClient 项目文档。
同步接口
每一个同步接口都以OASRequest(或其子类)为参数,以OASResult(或其子类)为返回结果。OASRequest和OASResult的每一个成员变量均带有 getter 、 setter 和 with 方法,其中 with 方法功能与 setter 相同,但返回值是 this 引用,可用于级联操作。
下文将主要介绍同步接口的使用。其中,前四节将会介绍各个接口的请求参数和返回值,而其中出现的自定义类型将会在descriptor、其他类型一节和工具一章介绍。
OASRequest仅作为公共父类,没有实现任何方法。
OASResult包含的变量如下表所述。
低级接口是《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服务地址对象
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 元数据
变量 |
类型 |
描述 |
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)
评论