public class OSSToolKit extends ToolKit
Constructor and Description |
---|
OSSToolKit() |
Modifier and Type | Method and Description |
---|---|
static void |
addMetaHeader(HttpUriRequest request,
ObjectMeta meta)
将构造的meta添加到请求头中
|
static OSSException |
buildInterruptException(java.lang.String bucketName,
java.lang.String objectKey)
构造任务被取消时的中断异常
|
static OSSException |
buildLocalException(java.lang.String bucketName,
java.lang.String objectKey,
java.lang.Exception e)
从Local异常里构造出OSS异常类
|
static OSSException |
buildMd5CheckException(HttpResponse response,
java.lang.String bucketName,
java.lang.String objectKey,
java.lang.String md5sum,
java.lang.String eTag)
构造MD5校验异常
|
static void |
buildMutilPartUploadRequest(HttpUriRequest request,
BaseObject object,
ResourceToQuery resource)
分块上传时构造相关请求头。上传块时不需要带上额外信息如contentType等,所以独立于buildRequestWithSpecRsr
|
static OSSException |
buildNetworkException(HttpResponse response,
java.lang.String bucketName,
java.lang.String objectKey)
网络有响应但不是来自OSS服务端,构造异常抛出响应信息,避免意外最大只取前2048个字节
|
static void |
buildObjectListRequest(HttpUriRequest request,
OSSBucket bucket,
ResourceToQuery resource)
构造列举bucket的请求
|
static OSSException |
buildOssException(HttpResponse response,
java.lang.String bucketName,
java.lang.String objectKey)
从OSS的错误响应里构造出异常类
|
static void |
buildRequest(HttpUriRequest request,
BaseObject object)
构造数据操作相关的请求头
|
static void |
buildRequestWithCompleteInfo(HttpUriRequest request,
BaseObject object,
ResourceToQuery resource)
指定resource情况下,构造请求头
|
static byte[] |
calFileMd5sum(java.lang.String filePath)
计算一个文件的MD5sum
|
static java.lang.String |
checkChildNotNullAndGetValue(org.w3c.dom.Node item)
检查xml单节点有子节点并取值
|
static void |
checkETagMd5Invalid(java.lang.String bucketName,
java.lang.String objectKey,
java.security.MessageDigest digester,
HttpResponse response)
上传文件后检查response中的eTag和本地计算得到的MD5sum是否一样,如果不一样,抛出异常
|
static boolean |
checkRequestIsGetOrHead(HttpUriRequest request)
判断一个请求是不是GET或HEAD(即没有副作用的请求)
|
static boolean |
checkRequestIsPutOrPost(HttpUriRequest request)
判断一个请求是不是PUT或POST
|
static void |
consumeResponseEntity(HttpResponse response)
如果一个response存在响应body,读尽它
|
static void |
ensureBucketNameValid(java.lang.String bucketName)
Validate bucket name.
|
static void |
ensureObjectKeyValid(java.lang.String key)
Validate objecate name
|
static HttpResponse |
executeRequestWithLog(HttpClient client,
HttpUriRequest request)
执行request,打印请求头、响应头
|
static java.lang.String |
generateCanonicalizedHeader(XOSSMeta headers)
生成CanonicalizedHeader, 以\n结束
|
static java.lang.String |
generateToken(java.lang.String accessKey,
java.lang.String screctKey,
java.lang.String content)
根据ak/sk、content生成token
|
static ObjectMeta |
getObjectMetadataFromResponse(HttpResponse response)
将meta数据从http响应内容中解析出来
|
static java.lang.String |
getUserAgent()
获取系统UA值
|
static OSSException |
handleExceptionalResponse(HttpResponse response,
HttpUriRequest request,
java.lang.String bucketName,
java.lang.String objectKey)
处理非oss服务端返回的响应,返回处理后的异常信息
|
static boolean |
isEmptyString(java.lang.String str)
判断一个字符串是否为空
|
static boolean |
isNeedToAuthorize(HttpUriRequest request,
AccessControlList ACL)
判断一个请求是否需要加签
|
static boolean |
isReadOnlyHttpMethod(java.lang.String method)
判断一个http请求是否是只读的
|
static boolean |
isResponseFromOssServer(HttpResponse response)
判断一个响应是不是从OSS服务端返回的
|
static java.lang.String |
parseCommonPrefix(org.w3c.dom.NodeList list)
解析commonPrefix
|
static ListObjectResult |
parseObjectListResponse(java.io.InputStream in)
解析listObejctInBucket请求的响应体
|
static java.util.List<UploadPartInfo> |
parsePartListFromResponse(java.io.InputStream inputStream)
解析查看分块上传事件的已上传分块列表
|
static void |
parserErrorResponseXML(OSSResponseInfo ossRespInfo,
java.io.InputStream in)
解析OSS的错误响应,将解析结果置入ossRespInfo中
|
static ListObjectResult.ObjectInfo |
parseSingleObjectInfo(org.w3c.dom.NodeList list)
解析bucket list列表的单个元素
|
static java.lang.String |
parseUploadIdFromXml(java.io.InputStream in)
初始化上传事件时,从响应体的XML里parse出uploadID
|
static void |
printRequestHeader(HttpRequest request)
打印一个request的header,包括requestLine
|
static void |
printResponseHeader(HttpResponse response)
打印一个response的header,包括statusLine
|
static void |
suspend(long delayMs)
当前线程暂停若干毫秒,不抛出中断异常
|
static boolean |
validateBucketName(java.lang.String bucketName)
Validate bucket name
|
static boolean |
validateObjectKey(java.lang.String key)
Validate object name.
|
calMd5sum, calMd5sumString, checkFileReadable, checkFileWritable, checkNotEmptyStringArg, checkNotNullArg, checkNotNullPointer, currentTimeInGMTFormat, date2GMTFormat, detectIfProxyExist, epoch2GMTFormat, getBase64Md5FromFile, getHmacSha1Signature, getMd5StrFromBytes, gmtFormat2Date, isEmptyOrNullString, readFullyToBuffer, readFullyToByteArray, readFullyToLocalFile, readFullyToString, string2DateInSpecifyFormat, trimAndJoin, validateHostName
public static boolean validateBucketName(java.lang.String bucketName)
public static void ensureBucketNameValid(java.lang.String bucketName)
bucketName
- public static boolean validateObjectKey(java.lang.String key)
public static void ensureObjectKeyValid(java.lang.String key)
key
- public static java.lang.String checkChildNotNullAndGetValue(org.w3c.dom.Node item)
item
- public static void parserErrorResponseXML(OSSResponseInfo ossRespInfo, java.io.InputStream in) throws java.lang.Exception
ossRespInfo
- in
- java.lang.Exception
public static ListObjectResult.ObjectInfo parseSingleObjectInfo(org.w3c.dom.NodeList list)
list
- public static java.lang.String parseCommonPrefix(org.w3c.dom.NodeList list)
list
- public static ListObjectResult parseObjectListResponse(java.io.InputStream in) throws java.lang.Exception
in
- java.lang.Exception
public static java.lang.String parseUploadIdFromXml(java.io.InputStream in)
in
- public static java.util.List<UploadPartInfo> parsePartListFromResponse(java.io.InputStream inputStream) throws java.lang.Exception
inputStream
- java.lang.Exception
public static void checkETagMd5Invalid(java.lang.String bucketName, java.lang.String objectKey, java.security.MessageDigest digester, HttpResponse response) throws OSSException
digester
- response
- OSSException
public static void addMetaHeader(HttpUriRequest request, ObjectMeta meta)
request
- meta
- public static java.lang.String generateCanonicalizedHeader(XOSSMeta headers)
public static ObjectMeta getObjectMetadataFromResponse(HttpResponse response) throws java.text.ParseException
response
- java.text.ParseException
public static void buildRequest(HttpUriRequest request, BaseObject object)
request
- object
- public static java.lang.String getUserAgent()
public static boolean isNeedToAuthorize(HttpUriRequest request, AccessControlList ACL)
request
- ACL
- public static boolean isReadOnlyHttpMethod(java.lang.String method)
method
- public static boolean isResponseFromOssServer(HttpResponse response)
response
- public static void buildRequestWithCompleteInfo(HttpUriRequest request, BaseObject object, ResourceToQuery resource)
request
- object
- resource
- public static void buildMutilPartUploadRequest(HttpUriRequest request, BaseObject object, ResourceToQuery resource)
request
- resource
- public static void buildObjectListRequest(HttpUriRequest request, OSSBucket bucket, ResourceToQuery resource)
public static OSSException buildOssException(HttpResponse response, java.lang.String bucketName, java.lang.String objectKey) throws java.lang.Exception
response
- objectKey
- java.lang.Exception
public static OSSException buildNetworkException(HttpResponse response, java.lang.String bucketName, java.lang.String objectKey) throws java.lang.Exception
response
- objectKey
- java.lang.Exception
public static OSSException handleExceptionalResponse(HttpResponse response, HttpUriRequest request, java.lang.String bucketName, java.lang.String objectKey)
response
- request
- objectKey
- public static OSSException buildMd5CheckException(HttpResponse response, java.lang.String bucketName, java.lang.String objectKey, java.lang.String md5sum, java.lang.String eTag)
response
- objectKey
- md5sum
- eTag
- public static OSSException buildLocalException(java.lang.String bucketName, java.lang.String objectKey, java.lang.Exception e)
objectKey
- e
- public static OSSException buildInterruptException(java.lang.String bucketName, java.lang.String objectKey)
bucketName
- objectKey
- public static boolean isEmptyString(java.lang.String str)
str
- public static void printRequestHeader(HttpRequest request)
request
- public static void printResponseHeader(HttpResponse response)
response
- public static byte[] calFileMd5sum(java.lang.String filePath) throws java.security.NoSuchAlgorithmException, java.io.IOException
filePath
- java.security.NoSuchAlgorithmException
java.io.IOException
public static java.lang.String generateToken(java.lang.String accessKey, java.lang.String screctKey, java.lang.String content)
accessKey
- screctKey
- content
- public static boolean checkRequestIsGetOrHead(HttpUriRequest request)
request
- public static boolean checkRequestIsPutOrPost(HttpUriRequest request)
request
- public static void suspend(long delayMs)
delayMs
- public static void consumeResponseEntity(HttpResponse response)
java.io.IOException
public static HttpResponse executeRequestWithLog(HttpClient client, HttpUriRequest request) throws java.io.IOException
java.io.IOException