有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

简介

本文档主要介绍 SDK 如何在请求时携带自定义头部。

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API 参考

功能说明

COS 在上传对象时可以携带以 x-cos-meta- 开头的自定义头部,包括用户自定义元数据头部后缀和用户自定义元数据信息,这些头部将作为对象元数据保存。
如果您开通了万象服务,可以携带 Pic-Operations 头部,实现后台自动图片处理,详细的 API 说明请参考 数据万象持久化

示例代码

// 存储桶region可以在COS控制台指定存储桶的概览页查看 https://console.cloud.tencent.com/cos5/bucket/ ,关于地域的详情见 https://cloud.tencent.com/document/product/436/6224
String region = "ap-beijing"; // 您的存储桶地域
String commonHeaderKey = "commonexamplekey"; // 自定义公共 Header 的键
String commonHeaderValue = "commonexamplevalue"; // 自定义公共 Header 的值
String requestHeaderKey = "requestexamplekey"; // 自定义请求 Header 的键
String requestHeaderValue = "requestexamplevalue"; // 自定义请求 Header 的值

CosXmlServiceConfig cosXmlServiceConfig = new CosXmlServiceConfig.Builder()
.isHttps(true)
.setRegion(region)
.setDebuggable(false)
// 给所有的请求添加公共的自定义 Header
.addHeader(commonHeaderKey, commonHeaderValue)
.builder();

CosXmlService cosXmlService = new CosXmlService(context, cosXmlServiceConfig,
credentialProvider);

// 给单个请求添加自定义 Header,优先级比公共 Header 更高
HeadObjectRequest headObjectRequest = new HeadObjectRequest(bucket, cosPath);
try {
headObjectRequest.setRequestHeaders(requestHeaderKey, requestHeaderValue, false);
} catch (CosXmlClientException e) {
e.printStackTrace();
}

// 发起请求
cosXmlService.headObjectAsync(headObjectRequest, new CosXmlResultListener() {
@Override
public void onSuccess(CosXmlRequest request, CosXmlResult result) {
HeadObjectResult headObjectResult = (HeadObjectResult) result;
}

@Override
public void onFail(CosXmlRequest request, CosXmlClientException clientException,
CosXmlServiceException serviceException) {
if (clientException != null) {
clientException.printStackTrace();
} else {
serviceException.printStackTrace();
}
}
});
说明
更多完整示例,请前往 GitHub 查看。