低级接口分为同步接口(阻塞接口)异步接口(非阻塞接口)两类对于同步接口,在整个传输请求完成之前不会返回;对于异步操作,请求发送之后立刻返回,并不会等待传输请求完成。

背景信息

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(或其子类)为返回结果。OASRequestOASResult的每一个成员变量均带有 gettersetterwith 方法,其中 with 方法功能与 setter 相同,但返回值是 this 引用,可用于级联操作。

下文将主要介绍同步接口的使用。其中,前四节将会介绍各个接口的请求参数和返回值,而其中出现的自定义类型将会在descriptor、其他类型一节和工具一章介绍。

OASRequest仅作为公共父类,没有实现任何方法。

OASResult包含的变量如下表所述。

成员变量类型含义
requestIdString请求的唯一标识
dateDate请求的响应时间

低级接口是《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"));
}

日志输出

OASClientOASClientAsync均支持日志输出,开启日志的方法如下:

// 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服务地址对象

变量名类型描述
hostStringOAS服务地址,如http://cn-hangzhou.oas.aliyuncs.com/
portintOAS服务器端口,默认为-1,即使用端口80(HTTP协议)或443(HTTPS协议)

ClientConfiguration

ClientConfiguration可用于配置高级接口或低级接口的行为,所支持的所有配置项如下表所示。其中,使用默认的构造方法可生成默认配置,save 可保存配置至本地文件,load 可从本地文件读取配置,具体使用请参考示例。

变量名类型描述
maxConnectionsint最大总连接数,默认为200
connectionTimeoutMsint连接超时毫秒数,默认为Integer.MAX_VALUE,即无限制
idleConnectionTimeoutMsint连接空闲毫秒数,默认为Integer.MAX_VALUE,即无限制
requestTimeoutMsint单个连接的最大请求毫秒数,默认为Integer.MAX_VALUE,即无限制。注意,该变量指的是请求开始到请求结束的总时间,若设置较小的值,可能会导致上传和下载等较费时的操作无法完成
maxRetryint遇到网络出错时的最大重试数,默认为3
enableProxyboolean是否使用代理服务器,默认为false
proxyHostString代理服务器地址,默认为空字符串
proxyPortint代理服务器端口,默认为8080
proxyUsernameString代理服务器验证的用户名,默认为空字符串,即不需要验证
proxyPasswordString代理服务器验证的密码,默认为空字符串
// 生成默认配置并进行自定义
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

变量名类型描述
vaultNameString待新建的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

变量名类型描述
locationString所创建的Vault对应的URI
vaultIdString所创建的Vault的ID

删除 Vault

请求参数(DeleteVaultRequest

变量名类型描述
vaultIdString待删除的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

变量名类型描述
vaultIdString待查询的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

变量名类型描述
descriptorVaultDescriptorVault的JSON描述

获取 Vault 列表

请求参数(ListVaultsRequest

变量名类型描述
limitint返回列表的最大长度
markerString列表的起始标识

接口定义

/**
 * 获取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

变量名类型描述
markerString下一次请求的起始标识
vaultListList<VaultDescriptor>Vault的JSON描述列表

Archive 操作

查询 Archive 元数据

请求参数(GetArchiveMetaRequest

变量类型描述
vaultIdString待上传的目标Vault的ID
archiveIdString成功上传的Archive的ID

接口定义

/**
 * 根据VaultId、ArchiveId获得Archive的元数据信息
 * @param getArchiveMetaRequest 请求对象
 * @return GetArchiveMetaResult对象
 * @throws OASClientException
 * @throws OASServerException
 */
public GetArchiveMetaResult getArchiveMeta(GetArchiveMetaRequest getArchiveMetaRequest)
    throws OASClientException, OASServerException;

响应结果

变量名类型描述
descriptorArchiveDescriptorArchive描述对象

ArchiveDescriptor结构:

变量名类型描述
archiveIdStringArchiveId字符串
treeEtagStringArchive的treeEtag校验信息
descriptionString描述信息
creationDateDate创建时间
sizelong大小(单位:字节)

上传 Archive

请求参数(UploadArchiveRequest

变量名类型描述
vaultIdString待上传的目标Vault的ID
fileFile待上传的文件,与stream为二选一参数,两者均设置时结果不确定
streamInputStream待上传的流,与file为二选一参数,两者均设置时结果不确定
contentLengthlong可选参数,待上传的长度,默认为file.length()stream.available()
descriptionString可选参数,Archive的描述字段
contentEtagStringArchive的校验码
treeEtagStringArchive的哈希树校验码

接口定义

/**
 * 上传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

变量名类型描述
locationString成功上传的Archive的URI
archiveIdString成功上传的Archive的ID

删除 Archive

请求参数(DeleteArchiveRequest

变量名类型描述
vaultIdString待删除的Archive所属Vault的ID
archiveIdString待删除的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

变量名类型描述
vaultIdString待新建任务的Vault的ID
partSizelong分块的字节大小
descriptionStringArchive的描述字段

接口定义

/**
 * 初始化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

变量名类型描述
locationString成功新建的任务的URI
uploadIdString成功新建的任务的ID

获取 Multipart Upload任务列表

请求参数(ListMultipartUploadsRequest

变量名类型描述
vaultIdString待查询的Vault的ID
limitint返回列表的最大长度
markerString列表的起始标识

接口定义

/**
 * 获取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

变量名类型描述
markerString下一次列表查询的起始标识
uploadListList<MultipartUploadDescriptor>Mulitpart Upload的JSON描述列表

删除 Multipart Upload 任务

请求参数(CancelMultipartUploadRequest

变量名类型描述
vaultIdString待删除的任务所属Vault的ID。
uploadIdString待删除的任务的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

变量名类型描述
vaultIdString待上传的任务所属Vault的ID
uploadIdString待上传的Part所属任务的ID
fileFile待上传的文件,与stream为二选一参数,两者均设置时结果不确定
streamInputStream待上传的流,与file为二选一参数,两者均设置时结果不确定
rangeRange待上传的Part对应整个文件的字节范围
contentEtagString校验字段
treeEtagString哈希树校验信息

接口定义

/**
 * 上传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

变量名类型描述
vaultIdString待查询的任务所属Vault的ID
uploadIdString待查询的任务的ID
limitint返回列表的最大长度
markerString列表的起始标识

接口定义

/**
 * 获取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

变量名类型描述
markerString下一次列表查询的起始标识
descriptorMultipartUploadDescriptorMulitpart Upload任务的JSON描述

Part 合并

请求参数(CompleteMultipartUploadRequest

变量名类型描述
vaultIdString待合并的任务所属Vault的ID
uploadIdString待合并的任务的ID
sizelong文件的字节大小
treeEtagString哈希树校验字段

接口定义

/**
 * 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;

响应结果

变量名类型描述
locationString成功上传的Archive的URI
archiveIdString成功上传的Archive的ID

Job 操作

初始化 Job 任务

请求参数(InitiateJobRequest

变量名类型描述
vaultIdString待新建Job的Vault的ID
archiveIdString待下载的Archive的ID,可选参数
typeJobTypeJob类型
descriptionStringJob的描述字段
retrievalRangeRange待下载的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

变量名类型描述
locationString创建成功的Job的URI
jobIdString创建成功的Job的ID

Job Output 下载

请求参数(GetJobOutputRequest

变量名类型描述
vaultIdString待下载的Job所属Vault的ID
jobIdString待下载的Job的ID
rangeRange待下载的字节范围
fileFile保存下载结果的文件

接口定义

/**
 * 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

变量名类型描述
fileFile保存下载结果的文件
contentEtagString校验码字段,可能为空
rangeRange下载的字节范围,可能为空
sizeTotallong下载的字节长度

获取 Job 列表

请求参数(ListJobsRequest

变量名类型描述
vaultIdString待查询的Vault的ID
limitint返回列表的最大长度
markerString列表的起始标识

接口定义

/**
 * 获取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

变量名类型描述
markerString下一次查询的起始标识
vaultListList<VaultDescriptor>Job的JSON描述列表

Job 任务状态查询

请求参数(DescribeJobRequest

变量名类型描述
vaultIdString待查询的Job所属Vault的ID
jobIdString待查询的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

变量名类型描述
descriptorJobDescriptorJob的JSON描述

Descriptor

OASDescriptor是服务器返回的JSON数据的封装,以下各个类均是OASDescriptor的子类,本节仅介绍JSON标签与变量名之间的对应关系,每个JSON标签的具体含义请参阅API手册。OASDescriptor的每一个成员变量均带有getter、setter和with方法。

VaultDescriptor

VaultDescriptor是Vault的JSON描述的封装,详见API手册4.1.3节返回体。

JSON标签变量名类型
CreationDatecreationDateDate
LastInventoryDatelastInventoryDateDate
NumberOfArchivesnumberOfArchivesint
SizeInBytessizelong
VaultIdvaultIdString
VaultNamevaultNameString

MultipartUploadDescriptor

MultipartUploadDescriptor是Multipart Upload任务的JSON描述的封装,详见API手册4.3.2一节返回体。注意,当调用获取Multipart Upload任务列表接口(API手册4.3.2)时,partList为空列表。partList仅在调用获取Part列表接口(API手册4.3.5)时被设置。

JSON标签变量名类型
ArchiveDescriptiondescriptionString
CreationDatecreationDateDate
MultipartUploadIduploadIdString
PartSizeInBytespartSizelong
PartspartListList<PartDescriptor>

PartDescriptor

PartDescriptor是Part的JSON描述的封装,详见API手册4.3.5一节返回体。

JSON标签变量名类型
ContentEtagcontentEtagString
RangeInBytesrangeRange

JobDescriptor

JobDescriptor是Job任务的JSON描述的封装,详见API手册4.4.4一节返回体。

JSON标签变量名类型
ActionactionJobType
ArchiveIdarchiveIdString
ArchiveSizeInBytesarchiveSizelong
ArchiveContentEtagarchiveContentEtagString
Completedcompletedboolean
CompletionDatecompletionDateDate
CreationDatecreationDateDate
InventorySizeInBytesinventorySizelong
JobDescriptiondescriptionString
JobIdjobIdString
StatusCodestatusCodeJobStatus
StatusMessagestatusMessageString

其他类型

JobStatus

枚举,表示Job任务状态,取值为IN_PROGRESSSUCCEEDEDFAILED

JobType

枚举,表示Job任务类型,取值为ARCHIVE_RETRIEVALINVENTORY_RETRIEVAL

Range

类,范围的描述,包含startend两个变量(long