public class ObsClient extends Object implements Closeable
限定符和类型 | 字段和说明 |
---|---|
protected ObsConfiguration |
config |
构造器和说明 |
---|
ObsClient(String accessKey,
String secretKey,
ObsConfiguration config)
构造函数
|
ObsClient(String accessKey,
String secretKey,
String endPoint)
构造函数
|
ObsClient(String accessKey,
String secretKey,
String securityToken,
ObsConfiguration config)
构造函数
|
ObsClient(String accessKey,
String secretKey,
String securityToken,
String endPoint)
构造函数
|
protected ObsConfiguration config
public ObsClient(String accessKey, String secretKey, String endPoint)
accessKey
- 访问密钥中的AKsecretKey
- 访问密钥中的SKendPoint
- OBS的服务地址public ObsClient(String accessKey, String secretKey, ObsConfiguration config)
accessKey
- 访问密钥中的AKsecretKey
- 访问密钥中的SKconfig
- OBS客户端配置参数public ObsClient(String accessKey, String secretKey, String securityToken, ObsConfiguration config)
accessKey
- 临时访问密钥中的AKsecretKey
- 临时访问密钥中的SKsecurityToken
- 安全令牌config
- OBS客户端配置参数public void refresh(String accessKey, String secretKey, String securityToken)
accessKey
- 临时访问密钥中的AKsecretKey
- 临时访问密钥中的SKsecurityToken
- 安全令牌public String createSignedUrl(HttpMethodEnum method, String bucketName, String objectKey, SpecialParamEnum specialParam, Date expiryTime, Map<String,String> headers, Map<String,Object> queryParams) throws ObsException
method
- Http请求方法bucketName
- 桶名objectKey
- 对象名specialParam
- 特殊操作符expiryTime
- 临时授权的有效截止日期headers
- 头信息queryParams
- 查询参数信息ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
//设置临时授权的有效时间
final long offsetTime = 600000L;
Date expiryTime = new Date(System.currentTimeMillis() + offsetTime);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createSignedUrl接口
String signedUrl = obsClient.createSignedUrl(HttpMethodEnum.GET, bucketName,
objectKey, null, expiryTime, null, null);
System.out.println("createSignedUrl success.");
System.out.println("preSignedUrl is : "+signedUrl);
}
catch (ObsException e)
{
System.out.println("createSignedUrl failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public String createSignedUrl(HttpMethodEnum method, String bucketName, String objectKey, SpecialParamEnum specialParam, long expires, Map<String,String> headers, Map<String,Object> queryParams)
method
- Http请求方法bucketName
- 桶名objectKey
- 对象名specialParam
- 特殊操作符expires
- 临时授权的有效时间,单位:秒,默认值:300headers
- 头信息queryParams
- 查询参数信息ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createSignedUrl接口
String signedUrl = obsClient.createSignedUrl(HttpMethodEnum.GET, bucketName,
objectKey, null, 3600, null, null);
System.out.println("createSignedUrl success.");
System.out.println("preSignedUrl is : "+signedUrl);
}
catch (ObsException e)
{
System.out.println("createSignedUrl failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public TemporarySignatureResponse createTemporarySignature(TemporarySignatureRequest request)
request
- 临时授权访问的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
//调用ObsClient的createTemporarySignature接口
TemporarySignatureRequest request = new
TemporarySignatureRequest();
request.setMethod(HttpMethodEnum.GET);
TemporarySignatureResponse res =
obsClient.createTemporarySignature(request);
System.out.println("createTemporarySignature success.");
System.out.println("signedUrl is : "+
res.getSignedUrl());
}
catch (ObsException e)
{
System.out.println("createTemporarySignature failed.
" + e.getErrorMessage() + "response code :" +
e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public V4TemporarySignatureResponse createV4TemporarySignature(V4TemporarySignatureRequest request) throws ObsException
request
- V4临时授权访问的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createV4TemporarySignature接口
V4TemporarySignatureRequest request = new V4TemporarySignatureRequest();
request.setMethod(HttpMethodEnum.GET);
V4TemporarySignatureResponse res = obsClient.createV4TemporarySignature(request);
System.out.println("createV4TemporarySignature success.");
System.out.println("signedUrl is : "+ res.getSignedUrl());
}
catch (ObsException e)
{
System.out.println("createV4TemporarySignature failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public V4PostSignatureResponse createV4PostSignature(String acl, String contentType, long expires, String bucketName, String objectKey) throws ObsException
acl
- 对象的访问权限contentType
- 对象的MIME类型expires
- 有效时间,单位:秒bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createV4PostSignature接口
V4PostSignatureResponse res = obsClient.createV4PostSignature("public-read", "text/plain", 300, bucketName, objectKey);
System.out.println(res.getAlgorithm());
System.out.println(res.getCredential());
System.out.println(res.getDate());
System.out.println(res.getOriginPolicy());
System.out.println(res.getPolicy());
}
catch (ObsException e)
{
System.out.println("createV4PostSignature failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public V4PostSignatureResponse createV4PostSignature(long expires, String bucketName, String objectKey) throws ObsException
expires
- 有效时间,单位:秒bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createV4PostSignature接口
V4PostSignatureResponse res = obsClient.createV4PostSignature(300, bucketName, objectKey);
System.out.println(res.getAlgorithm());
System.out.println(res.getCredential());
System.out.println(res.getDate());
System.out.println(res.getOriginPolicy());
System.out.println(res.getPolicy());
}
catch (ObsException e)
{
System.out.println("createV4PostSignature failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public V4PostSignatureResponse createV4PostSignature(V4PostSignatureRequest request) throws ObsException
request
- 基于V4的浏览器表单授权访问请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createV4PostSignature接口
V4PostSignatureRequest request = new V4PostSignatureRequest();
request.setBucketName(bucketName);
request.setObjectKey(objectKey);
request.getFormParams().put("acl", "public-read");
request.getFormParams().put("content-type", "text/plain");
V4PostSignatureResponse res = obsClient.createV4PostSignature(request);
System.out.println(res.getAlgorithm());
System.out.println(res.getCredential());
System.out.println(res.getDate());
System.out.println(res.getOriginPolicy());
System.out.println(res.getPolicy());
}
catch (ObsException e)
{
System.out.println("createV4PostSignature failed. " + e.getErrorMessage() +
"response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObsBucket createBucket(String bucketName) throws ObsException
桶命名规范:
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createBucket接口
ObsBucket bucketResult = obsClient.createBucket(bucketName);
System.out.println("Create bucket success. BucketName: " +
bucketResult.getBucketName()
+ "; CreationDate" + bucketResult.getCreationDate()
+ "; Location: " + bucketResult.getLocation());
}
catch (ObsException e)
{
System.out.println("Create bucket failed. Error Message: " + e.getErrorMessage()
+ ". Response Code: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObsBucket createBucket(String bucketName, String location) throws ObsException
桶命名规范:
bucketName
- 桶名location
- 创建桶的区域, 如果使用的终端节点归属于默认区域,可以不携带此参数;如果使用的终端节点归属于其他区域,则必须携带此参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的createBucket接口
ObsBucket bucketResult = obsClient.createBucket(bucketName, null);
System.out.println("Create bucket success. BucketName: " +
bucketResult.getBucketName()
+ "; CreationDate" + bucketResult.getCreationDate()
+ "; Location: " + bucketResult.getLocation());
}
catch (ObsException e)
{
System.out.println("Create bucket failed. Error Message: " + e.getErrorMessage()
+ ". Response Code: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
@Deprecated public ObsBucket createBucket(S3Bucket bucket) throws ObsException
桶命名规范:
bucket
- 桶信息,包含请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 创建桶实例
S3Bucket s3Bucket = new S3Bucket();
Map<String,Object> metadata = new HashMap<String,Object>();
metadata.put("x-amz-acl", "public-read");
// 设置桶的存储类型 STANDARD(标准存储)、STANDARD_IA(低频访问存储)、GLACIER(归档存储)
metadata.put("x-default-storage-class", "STANDARD");
s3Bucket.setBucketName(bucketName);
s3Bucket.setMetadata(metadata);
// 调用create接口创建桶,并获得创建的桶对象
ObsBucket rObsBucket = obsClient.createBucket(s3Bucket);
System.out.println("Bucket name: " + rObsBucket.getBucketName()
+ ", location: " + rObsBucket.getLocation());
public ObsBucket createBucket(ObsBucket bucket) throws ObsException
桶命名规范:
bucket
- 桶信息,包含请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
// 创建桶实例
ObsBucket obsBucket = new ObsBucket();
Map<String,Object> metadata = new
HashMap<String,Object>();
metadata.put("x-amz-acl", "public-read");
// 设置桶的存储类型
STANDARD(标准存储)、STANDARD_IA(低频访问存储)、GLACIER(归档存储)
metadata.put("x-default-storage-class",
"STANDARD");
obsBucket.setBucketName(bucketName);
obsBucket.setMetadata(metadata);
// 调用create接口创建桶,并获得创建的桶对象
ObsBucket rObsBucket =
obsClient.createBucket(obsBucket);
System.out.println("Bucket name: " +
rObsBucket.getBucketName()
+ ", location: " +
rObsBucket.getLocation());
@Deprecated public List<S3Bucket> listBuckets() throws ObsException
ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的listBuckets接口
List<S3Bucket> bucketList = obsClient.listBuckets();
Iterator<S3Bucket> iterator = bucketList.iterator();
System.out.println("List bucket success: ");
while (iterator.hasNext())
{
S3Bucket bucket = iterator.next();
System.out.println(" *bucketName: " +
bucket.getBucketName());
System.out.println(" createDate: " +
bucket.getCreationDate());
Owner owner = bucket.getOwner();
if (null != owner)
{
System.out.println(" owner id: " + owner.getId());
System.out.println(" owner displayname: " + owner.getDisplayName());
}
else
{
System.out.println(" owner is null");
}
}
}
catch (ObsException e)
{
System.out.println(" List bucket failed." + e.getErrorMessage() +
", response code : " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public List<ObsBucket> listBuckets(ListBucketsRequest request) throws ObsException
ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
ListBucketsRequest request = new ListBucketsRequest();
request.setQueryLocation(true);
//调用ObsClient的listBuckets接口
List<ObsBucket> bucketList =
obsClient.listBuckets(request);
Iterator<ObsBucket> iterator =
bucketList.iterator();
System.out.println("List bucket success:
");
while (iterator.hasNext())
{
ObsBucket bucket =
iterator.next();
System.out.println("
*bucketName: " + bucket.getBucketName());
System.out.println("
createDate: " + bucket.getCreationDate());
Owner owner =
bucket.getOwner();
if (null !=
owner)
{
System.out.println(" owner id: " + owner.getId());
System.out.println(" owner displayname: " +
owner.getDisplayName());
}
else
{
System.out.println(" owner is null");
}
}
}
catch (ObsException e)
{
System.out.println(" List bucket failed." +
e.getErrorMessage() + ", response code : " +
e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse deleteBucket(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteBucket接口
obsClient.deleteBucket(bucketName);
System.out.println("Delete bucket success.");
}
catch (ObsException e)
{
System.out.println("Delete bucket failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObjectListing listObjects(ListObjectsRequest listObjectsRequest) throws ObsException
listObjectsRequest
- 请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 设置查询条件
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
listObjectsRequest.setBucketName(bucketName);
listObjectsRequest.setPrefix("test");
listObjectsRequest.setMaxKeys(3);
// 调用listObjects接口查询bucket005桶下的所有对象
ObjectListing objListing = obsClient.listObjects(listObjectsRequest);
// 输出桶内对象的信息
List<ObsObject> objList = objListing.getObjects();
for (ObsObject obsObject : objList)
{
System.out.println("ObjectKey: " +
obsObject.getObjectKey()
+ ", content type: " +
obsObject.getMetadata().getContentType()
+ ", content length: " +
obsObject.getMetadata().getContentLength());
}
public ObjectListing listObjects(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的listObjects接口
ObjectListing result = obsClient.listObjects(bucketName);
Iterator<ObsObject> itr = result.getObjects().iterator();
System.out.println("List objects success. Objects: ");
while (itr.hasNext())
{
ObsObject obsObject = (ObsObject)itr.next();
System.out.println("object: " +
obsObject.getObjectKey());
}
}
catch (ObsException e)
{
System.out.println("List objects failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public boolean headBucket(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 调用isBucketExist接口判断桶是否存在
boolean isBucketExist = obsClient.headBucket(bucketName);
if(isBucketExist)
{
System.out. println("This bucket exists.");
}
else
{
System.out. println("This bucket doesn't exist.");
}
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ListVersionsResult listVersions(String bucketName, String prefix, String delimiter, String keyMarker, String versionIdMarker, long maxKeys, String nextVersionIdMarker) throws ObsException
bucketName
- 桶名prefix
- 对象名前缀delimiter
- 分组字符keyMarker
- 列举时按对象名排序的起始位置versionIdMarker
- 与keyMarker配合使用,返回的对象列表将是按照字典顺序排序后在该标识符以后的所有对象。maxKeys
- 指定返回的最大对象数,范围是[1,1000],超出范围时,按照默认的1000进行处理。nextVersionIdMarker
- 废弃字段,不建议填写。ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public ListVersionsResult listVersions(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public ListVersionsResult listVersions(String bucketName, long maxKeys) throws ObsException
bucketName
- 桶名maxKeys
- 指定返回的最大对象数,范围是[1,1000],超出范围时,按照默认的1000进行处理。ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public ListVersionsResult listVersions(String bucketName, String prefix, String delimiter, String keyMarker, String versionIdMarker, long maxKeys) throws ObsException
bucketName
- 桶名prefix
- 对象名前缀delimiter
- 分组字符keyMarker
- 列举时按对象名排序的起始位置versionIdMarker
- 与keyMarker配合使用,返回的对象列表将是按照字典顺序排序后在该标识符以后的所有对象。maxKeys
- 指定返回的最大对象数,范围是[1,1000],超出范围时,按照默认的1000进行处理。ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public String getBucketMetadata(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 调用getBucketMetadata接口查询桶的元数据信息
String defaultStorageClass = obsClient.getBucketMetadata(bucketName);
System.out.println("DefaultStorageClass:" + defaultStorageClass);
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketMetadataInfoResult getBucketMetadata(BucketMetadataInfoRequest bucketMetadataInfoRequest) throws ObsException
bucketMetadataInfoRequest
- 请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
BucketMetadataInfoRequest request = new BucketMetadataInfoRequest();
request.setBucketName(bucketName);
request.setOrigin("www.example.com");
request.getRequestHeaders().add("header1");
// 调用getBucketMetadata接口查询桶的元数据信息
BucketMetadataInfoResult result = obsClient.getBucketMetadata(request);
System.out.println("DefaultStorageClass:" + result.getDefaultStorageClass());
System.out.println("AllowOrigin:" + result.getAllowOrigin());
System.out.println("MaxAge:" + result.getMaxAge());
System.out.println("AllowHeaders:" + result.getAllowHeaders());
System.out.println("AllowMethods:" + result.getAllowMethods());
System.out.println("ExposeHeaders:" + result.getExposeHeaders());
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public AccessControlList getBucketAcl(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketAcl接口
AccessControlList acl = obsClient.getBucketAcl(bucketName);
System.out.println("Get bucket acl success. ACL: ");
Owner owner = acl.getOwner();
if (null != owner)
{
System.out.println(" owner id:" + owner.getId());
System.out.println(" owner displayname:" +
owner.getDisplayName());
}
else
{
System.out.println(" owner is null");
}
GrantAndPermission[] grantAndPermissions = acl.getGrantAndPermissions();
if (null != grantAndPermissions)
{
for (int i = 0; i < grantAndPermissions.length; i++)
{
System.out.println(" permissions :" + grantAndPermissions[i].getPermission());
}
}
}
catch (ObsException e)
{
System.out.println("Get bucket acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
@Deprecated public HeaderResponse setBucketAcl(String bucketName, String cannedACL, AccessControlList acl) throws ObsException
bucketName
- 桶名cannedACL
- 预定义访问策略字符串表示,有效值:acl
- 访问权限 ( acl和cannedACL不能同时使用)ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public HeaderResponse setBucketAcl(String bucketName, AccessControlList acl) throws ObsException
bucketName
- 桶名acl
- 访问权限ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 封装修改访问权限的请求
AccessControlList acl = new AccessControlList();
Owner own = new Owner();// 设置桶的所有者的信息
own.setId("owner domain id");
own.setDisplayName("user001");
acl.setOwner(own);
// 设置被授权用户的信息以及被赋予的权限
CanonicalGrantee canonicalGrant =
new CanonicalGrantee("grantee domain id");
canonicalGrant.setDisplayName("user002");
acl.grantPermission(canonicalGrant, Permission.PERMISSION_READ);
// 设置被授权用户组的信息以及被赋予的权限
GroupGrantee groupGrant =
new GroupGrantee(
"http://acs.amazonaws.com/groups/global/AuthenticatedUsers");
acl.grantPermission(groupGrant, Permission.PERMISSION_READ);
// 调用setBucketAcl设置桶的访问权限
obsClient.setBucketAcl(bucketName, acl);
System.out.println("set bucket acl success.");
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public String getBucketLocation(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketLocation接口
String location = obsClient.getBucketLocation(bucketName);
System.out.println( "Get bucket location success. Bucket location: " +
location);
}
catch (ObsException e)
{
System.out.println("Get bucket location failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketLocationResponse getBucketLocationV2(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketLocation接口
BucketLocationResponse response = obsClient.getBucketLocationV2(bucketName);
System.out.println( "Get bucket location success. Bucket location: " +
response.getLocation());
}
catch (ObsException e)
{
System.out.println("Get bucket location failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketStorageInfo getBucketStorageInfo(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketStorageInfo接口
BucketStorageInfo storageInfo =
obsClient.getBucketStorageInfo(bucketName);
System.out.println( "Get bucket storageinfo success. objectNumber: " +
storageInfo.getObjectNumber() + "; Size: " + storageInfo.getSize());
}
catch (ObsException e)
{
System.out.println("Get bucket storageinfo failed. " + e.getErrorMessage() +
" response code : " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketQuota getBucketQuota(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketQuota接口
BucketQuota quota = obsClient.getBucketQuota(bucketName);
System.out.println("Get bucket quota success. Bucket quota: " +
quota.getBucketQuota());
}
catch (ObsException e)
{
System.out.println("Get bucket quota failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketQuota(String bucketName, BucketQuota bucketQuota) throws ObsException
bucketName
- 桶名bucketQuota
- 桶配额ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
final long quota = 512L;
BucketQuota bucketQuota = new BucketQuota();
bucketQuota.setBucketQuota(quota);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setBucketQuota接口
obsClient.setBucketQuota(bucketName, bucketQuota);
System.out.println("set bucket quota success.");
}
catch (ObsException e)
{
System.out.println("set bucket quota failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketStoragePolicyConfiguration getBucketStoragePolicy(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
//调用ObsClient的getBucketStoragePolicy接口
BucketStoragePolicyConfiguration storagePolicyConfig = obsClient.getBucketStoragePolicy(bucketName);
System.out.println("get bucket storagePolicy success. storageClass:" + storagePolicyConfig.getStorageClass());
}
catch (ObsException e)
{
System.out.println("get bucket storagePolicy failed.
" + e.getErrorMessage() + " response code :"
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketStoragePolicy(String bucketName, BucketStoragePolicyConfiguration bucketStorage) throws ObsException
bucketName
- 桶名bucketStorage
- 桶的存储策略ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
BucketStoragePolicyConfiguration storagePolicyConfiguration = new BucketStoragePolicyConfiguration();
storagePolicyConfiguration.setBucketStorageClass(StorageClassEnum.WARM);
//调用ObsClient的setBucketStoragePolicy接口
obsClient.setBucketStoragePolicy(bucketName,storagePolicyConfiguration);
System.out.println("set bucket storagePolicy
success.");
}
catch (ObsException e)
{
System.out.println("set bucket storagePolicy failed.
" + e.getErrorMessage() + " response code :"
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
@Deprecated public HeaderResponse setBucketCors(String bucketName, S3BucketCors s3BucketCors) throws ObsException
bucketName
- 桶名s3BucketCors
- CORS配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
S3BucketCors s3BucketCors = new S3BucketCors();
try
{ //实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 定义CORS规则
List<BucketCorsRule> rules = new ArrayList<BucketCorsRule>();
List<String> allowedHeader = new ArrayList<String>();
allowedHeader.add("allowedHeader");
List<String> allowedMethod = new ArrayList<String>();
allowedMethod.add("GET");
List<String> allowedOrigin = new ArrayList<String>();
allowedOrigin.add("allowedOrigin");
List<String> exposeHeader = new ArrayList<String>();
exposeHeader.add("exposeHeader");
BucketCorsRule rule = new BucketCorsRule();
rule.setAllowedHeader(allowedHeader);
rule.setAllowedMethod(allowedMethod);
rule.setAllowedOrigin(allowedOrigin);
rule.setId("001");
rule.setExposeHeader(exposeHeader);
rules.add(rule);
s3BucketCors.setRules(rules);
// 调用setBucketCors接口设置CORS规则
obsClient.setBucketCors(bucketName, s3BucketCors);
}
catch (ObsException e)
{
System.out.println( "set bucket Cors failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketCors(String bucketName, BucketCors bucketCors) throws ObsException
bucketName
- 桶名bucketCors
- CORS配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
BucketCors bucketCors = new BucketCors();
try
{ //实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
// 定义CORS规则
List<BucketCorsRule> rules = new
ArrayList<BucketCorsRule>();
List<String> allowedHeader = new
ArrayList<String>();
allowedHeader.add("allowedHeader");
List<String> allowedMethod = new
ArrayList<String>();
allowedMethod.add("GET");
List<String> allowedOrigin = new
ArrayList<String>();
allowedOrigin.add("allowedOrigin");
List<String> exposeHeader = new
ArrayList<String>();
exposeHeader.add("exposeHeader");
BucketCorsRule rule = new
BucketCorsRule();
rule.setAllowedHeader(allowedHeader);
rule.setAllowedMethod(allowedMethod);
rule.setAllowedOrigin(allowedOrigin);
rule.setId("001");
rule.setExposeHeader(exposeHeader);
rules.add(rule);
bucketCors.setRules(rules);
// 调用setBucketCors接口设置CORS规则
obsClient.setBucketCors(bucketName,
bucketCors);
}
catch (ObsException e)
{
System.out.println( "set bucket Cors failed.
" + e.getErrorMessage() + " response code :" +
e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketCors getBucketCors(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketCors接口
obsClient.getBucketCors(bucketName);
System.out.println("get bucket Cors success.");
}
catch (ObsException e)
{
System.out.println("get bucket Cors failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse deleteBucketCors(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketCors接口
obsClient.deleteBucketCors(bucketName);
System.out.println("delete bucket Cors success.");
}
catch (ObsException e)
{
System.out.println("delete bucket Cors failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public OptionsInfoResult optionsBucket(String bucketName, OptionsInfoRequest optionInfo) throws ObsException
bucketName
- 桶名optionInfo
- OPTIONS桶的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
OptionsInfoRequest optionsInfo = new OptionsInfoRequest();
optionsInfo.setOrigin("allowedOrigin");//跨域请求Origin
List<String> methodList = new ArrayList<String>();
methodList.add("GET");
optionsInfo.setRequestMethod(methodList);//请求可以带的HTTP方法
List<String> headList = new ArrayList<String>();
headList.add("exposeHeader");
optionsInfo.setRequestHeaders(headList);//请求可以带的HTTP头域
//调用ObsClient的OptionsBucket接口
obsClient.optionsBucket(bucketName, optionsInfo);
System.out.println("option bucket success.");
}
catch (ObsException e)
{
System.out.println("option bucket failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public OptionsInfoResult optionsObject(String bucketName, String objectKey, OptionsInfoRequest optionInfo) throws ObsException
bucketName
- 桶名objectKey
- 对象名optionInfo
- OPTIONS对象的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
OptionsInfoRequest optionsInfo = new OptionsInfoRequest();
optionsInfo.setOrigin("allowedOrigin");//跨域请求Origin
List<String> methodList = new ArrayList<String>();
methodList.add("GET");
optionsInfo.setRequestMethod(methodList);//请求可以带的HTTP方法
List<String> headList = new ArrayList<String>();
headList.add("exposeHeader");
optionsInfo.setRequestHeaders(headList);//请求可以带的HTTP头域
//调用ObsClient的OptionsObject接口
obsClient.optionsObject(bucketName,objectKey,optionsInfo);
System.out.println("option object success.");
}
catch (ObsException e)
{
System.out.println("option object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketLoggingConfiguration getBucketLoggingConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketLoggingConfiguration接口
BucketLoggingConfiguration loggingConfiguration =
obsClient.getBucketLoggingConfiguration(bucketName);
if (loggingConfiguration != null)
{
System.out.println(
"Get bucket logging configuration success. Logging configuration: " + loggingConfiguration.toString());
}
else
{
System.out.println(
"Get bucket logging configuration failed or logging configuration is null." );
}
}
catch (ObsException e)
{
System.out.println("Get bucket logging configuration failed. " +
e.getErrorMessage() + "response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketLoggingConfiguration(String bucketName, BucketLoggingConfiguration loggingConfiguration, boolean updateTargetACLifRequired) throws ObsException
bucketName
- 桶名loggingConfiguration
- 日志管理配置updateTargetACLifRequired
- 是否通过SDK自动设置目标桶的日志投递组写权限和读ACP权限ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
//设置日志管理配置信息
BucketLoggingConfiguration loggingConfig = new BucketLoggingConfiguration();
loggingConfig.setTargetBucketName(bucketName);
loggingConfig.setLogfilePrefix("access_log");
CanonicalGrantee grantee = new CanonicalGrantee();
grantee.setDisplayName("testuser");
grantee.setIdentifier("grantee domain id"); //存储系统的用户ID
Permission permission = Permission.PERMISSION_FULL_CONTROL;
GrantAndPermission[] grants = new GrantAndPermission[1];
grants[0] = new GrantAndPermission(grantee, permission);
loggingConfig.setTargetGrants(grants);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setBucketLoggingConfiguration接口
obsClient.setBucketLoggingConfiguration(bucketName, loggingConfig, true);
System.out.println("set bucket logging configuration success.");
}
catch (ObsException e)
{
System.out.println("set bucket logging configuration failed. " +
e.getErrorMessage() + "response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketLoggingConfiguration(String bucketName, BucketLoggingConfiguration loggingConfiguration) throws ObsException
bucketName
- 桶名loggingConfiguration
- 日志管理配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
//设置日志管理配置信息
BucketLoggingConfiguration loggingConfig = new BucketLoggingConfiguration();
loggingConfig.setTargetBucketName(bucketName);
loggingConfig.setLogfilePrefix("access_log");
CanonicalGrantee grantee = new CanonicalGrantee();
grantee.setDisplayName("testuser");
grantee.setIdentifier("grantee domain id"); //存储系统的用户ID
Permission permission = Permission.PERMISSION_FULL_CONTROL;
GrantAndPermission[] grants = new GrantAndPermission[1];
grants[0] = new GrantAndPermission(grantee, permission);
loggingConfig.setTargetGrants(grants);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setBucketLoggingConfiguration接口
obsClient.setBucketLoggingConfiguration(bucketName, loggingConfig);
System.out.println("set bucket logging configuration success.");
}
catch (ObsException e)
{
System.out.println("set bucket logging configuration failed. " +
e.getErrorMessage() + "response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
@Deprecated public HeaderResponse setBucketVersioning(String bucketName, String status) throws ObsException
bucketName
- 桶名status
- 多版本状态字符串,支持Suspended(暂停多版本状态)和Enabled(启用多版本状态)ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 创建多版本状态实例
// 调用setBucketVersioning接口开启桶的多版本状态
obsClient.setBucketVersioning(bucketName, "Enabled");
System.out.println("set bucket versioning configuration success.");
}
catch (ObsException e)
{
System.out.println("failed to set bucket versioning status.ErrorMessage: "
+ e.getErrorMessage() + ". Response code :"
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketVersioning(String bucketName, BucketVersioningConfiguration versioningConfiguration) throws ObsException
bucketName
- 桶名versioningConfiguration
- 桶的多版本状态配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 创建多版本状态实例
BucketVersioningConfiguration bucketVersioningConfiguration =
new BucketVersioningConfiguration(VersioningStatusEnum.ENABLED);
// 调用setBucketVersioning接口开启桶的多版本状态
obsClient.setBucketVersioning(bucketName,
bucketVersioningConfiguration);
System.out.println("set bucket versioning configuration success.");
}
catch (ObsException e)
{
System.out.println("failed to set bucket versioning status.ErrorMessage: "
+ e.getErrorMessage() + ". Response code :"
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketVersioningConfiguration getBucketVersioning(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 调用getBucketVersioning接口查询桶的多版本状态是否开启
BucketVersioningConfiguration versioningConfiguration =
obsClient.getBucketVersioning(bucketName);
System.out.println("The versioning state is: " +
versioningConfiguration.getStatus());
public LifecycleConfiguration getBucketLifecycleConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketLifecycleConfiguration接口
LifecycleConfiguration lifecycleConfig =
obsClient.getBucketLifecycleConfiguration(bucketName);
if (null != lifecycleConfig)
{
System.out.println
("Get bucket lifecycle configuration success.");
}
else
{
System.out.println(
"Get bucket lifecycle configuration failed or lifecycleConfig is null" );
}
}
catch (ObsException e)
{
System.out.println( " Get bucket lifecycle configuration failed." +
e.getErrorMessage() + ", response code:" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketLifecycleConfiguration(String bucketName, LifecycleConfiguration lifecycleConfig) throws ObsException
bucketName
- 桶名lifecycleConfig
- 桶的生命周期配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
LifecycleConfiguration lifecycleConfig = new LifecycleConfiguration();
LifecycleConfiguration.Rule rule = lifecycleConfig.newRule("lifecycle001",
"user001", true);
LifecycleConfiguration.Expiration expiration = rule.newExpiration();
expiration.setDays(10);
expiration.setDate(date);
rule.setExpiration(expiration);
lifecycleConfig.addRule(rule);
public HeaderResponse deleteBucketLifecycleConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteBucketLifecycleConfiguration接口
obsClient.deleteBucketLifecycleConfiguration(bucketName);
System.out.println( "Delete bucket lifecycle configuration success.");
}
catch (ObsException e)
{
System.out.println( "Delete bucket lifecycle configuration failed." +
e.getErrorMessage() + ", response code:" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public String getBucketPolicy(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketPolicy接口
String policy = obsClient.getBucketPolicy(bucketName);
System.out.println("Get bucket policy success. Policy: " + policy);
}
catch (ObsException e)
{
System.out.println("Get bucket policy failed." + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public BucketPolicyResponse getBucketPolicyV2(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getBucketPolicy接口
BucketPolicyResponse response = obsClient.getBucketPolicyV2(bucketName);
System.out.println("Get bucket policy success. Policy: " + response.getPolicy());
}
catch (ObsException e)
{
System.out.println("Get bucket policy failed." + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketPolicy(String bucketName, String policy) throws ObsException
bucketName
- 桶名policy
- 以JSON格式字符串表示的桶策略ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常public HeaderResponse deleteBucketPolicy(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteBucketPolicy接口
obsClient.deleteBucketPolicy(bucketName);
System.out.println("Delete bucket policy success.");
}
catch (ObsException e)
{
System.out.println("Delete bucket policy failed. " + e.getErrorMessage() +
", response code: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public WebsiteConfiguration getBucketWebsiteConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 输出桶的WebsiteConfiguration信息
System.out.println("Key: "+conf.getKey()+ ", Suffix: "+conf.getSuffix());
for (RouteRule routeRule : list)
{
System.out. println("KeyPrefixEquals: "+
routeRule.getCondition().getKeyPrefixEquals()
+ ", HttpErrorCodeEquals: " +
routeRule.getCondition().getHttpErrorCodeReturnedEquals());
System.out.
println("ReplaceKeyPrefixWith: "+routeRule.getRedirect(). getReplaceKeyPrefixWith()
+", HostName: " + routeRule.getRedirect().getHostName());
}
}
catch (ObsException e)
{
System.out.println( "Get bucket website cofiguration failed. Error message: " +
e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketWebsiteConfiguration(String bucketName, WebsiteConfiguration websiteConfig) throws ObsException
bucketName
- 桶名websiteConfig
- 桶的website(托管)配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 设置website配置信息
WebsiteConfiguration conf = new WebsiteConfiguration();
conf.setKey("index.html");
conf.setSuffix("Error.html");
RouteRule routeRule = new RouteRule();// 设置重定向规则容器
RouteRuleCondition condition = new RouteRuleCondition();// 设置重定向条件
condition.setHttpErrorCodeReturnedEquals("404");
condition.setKeyPrefixEquals("pptx");
routeRule.setCondition(condition);
Redirect redirect = new Redirect();// 设置重定向规则
redirect.setHostName("www.host-example.com");
redirect.setReplaceKeyWith( "errorpage.html");
routeRule.setRedirect(redirect);
List<RouteRule> routeRules = new ArrayList<RouteRule>();// 重定向规则集合
routeRules.add(routeRule);
conf.setRouteRules(routeRules);
// 调用setBucketWebsiteConfiguration接口设置桶的website
obsClient. setBucketWebsiteConfiguration(bucketName, conf);
System.out.println( "set bucket website configuration success.");
}
catch (ObsException e)
{
System.out.println( "failed to set bucket website configuration. Error message: "
+ e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse deleteBucketWebsiteConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
public BucketTagInfo getBucketTagging(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 调用getBucketTagging接口获取桶标签信息
BucketTagInfo result = obsClient.getBucketTagging(bucketName);
for (BucketTagInfo.TagSet.Tag tag : result.getTagSet().getTags())
{
System.out.println("Key:" + tag.getKey());
System.out.println("Value:" + tag.getValue());
}
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketTagging(String bucketName, BucketTagInfo bucketTagInfo) throws ObsException
bucketName
- 桶名bucketTagInfo
- 桶标签ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
BucketTagInfo request = new BucketTagInfo();
BucketTagInfo.TagSet tagSet = new BucketTagInfo.TagSet();
request.setTagSet(tagSet);
tagSet.addTag("testKey001", "testValue001");
tagSet.addTag("testKey002", "testValue002");
// 调用setBucketTagging接口设置桶标签信息
obsClient.setBucketTagging(bucketName,request);
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse deleteBucketTagging(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 调用deleteBucketTagging接口删除桶标签信息
obsClient.deleteBucketTagging(bucketName);
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketReplicationConfiguration(String bucketName, ReplicationConfiguration replicationConfiguration) throws ObsException
bucketName
- 桶名replicationConfiguration
- 跨Region复制配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常public ReplicationConfiguration getBucketReplicationConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常public HeaderResponse deleteBucketReplicationConfiguration(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常public BucketNotificationConfiguration getBucketNotification(String bucketName) throws ObsException
bucketName
- 桶名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 调用getBucketNotification接口获取桶的通知配置
BucketNotificationConfiguration result = obsClient.getBucketNotification(bucketName);
System.out.println(result);
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setBucketNotification(String bucketName, BucketNotificationConfiguration bucketNotificationConfiguration) throws ObsException
bucketName
- 桶名bucketNotificationConfiguration
- 桶的通知配置ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常public PutObjectResult putObject(String bucketName, String objectKey, InputStream input, ObjectMetadata metadata) throws ObsException
bucketName
- 桶名objectKey
- 对象名input
- 待上传的数据流metadata
- 对象的属性ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
String greeting = "Hello World!";
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength((long)greeting.getBytes().length);
metadata.setContentType("text/plain");
Map<String,Object> meta = new HashMap<String,Object>();
meta.put("x-amz-acl", "public-read-write");
meta.put("x-amz-meta-test", "test metadata");
metadata.setMetadata(meta);
ByteArrayInputStream input = new ByteArrayInputStream(greeting.getBytes());
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的putObject接口
PutObjectResult result = obsClient.putObject(bucketName, objectKey, input,
metadata);
System.out.println("Put object success. Etag: " + result.getEtag());
}
catch (ObsException e)
{
System.out.println("Put object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public PutObjectResult putObject(String bucketName, String objectKey, InputStream input) throws ObsException
bucketName
- 桶名objectKey
- 对象名input
- 待上传的数据流ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
String greeting = "Hello World!";
ByteArrayInputStream input = new ByteArrayInputStream(greeting.getBytes());
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的putObject接口
PutObjectResult result = obsClient.putObject(bucketName, objectKey, input);
System.out.println("Put object success. Etag: " + result.getEtag());
}
catch (ObsException e)
{
System.out.println("Put object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public PutObjectResult putObject(PutObjectRequest request) throws ObsException
request
- 上传对象请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
File file = new File("localfile"); // 要上传的文件
FileInputStream fis = new FileInputStream(file);
ObjectMetadata metadata = new ObjectMetadata();// 设置上传对象的元数据
metadata.setContentLength(file.length()); // 设置头信息中的文件长度
metadata.setContentType("application/xml");// 设置上传的文件类型
// 封装上传对象的请求
PutObjectRequest request = new PutObjectRequest();
request.setBucketName(bucketName);
request.setInput(fis);
request.setMetadata(metadata);
request.setObjectKey(objectKey);
// 调用putObject接口创建对象
PutObjectResult result = obsClient.putObject(request);
System.out.println("Object etag: " + result.getEtag());
public PutObjectResult putObject(String bucketName, String objectKey, File file) throws ObsException
bucketName
- 桶名objectKey
- 对象名file
- 待上传的文件ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
File file = new File("localfile");
public PutObjectResult putObject(String bucketName, String objectKey, File file, ObjectMetadata metadata) throws ObsException
bucketName
- 桶名objectKey
- 对象名file
- 待上传的文件metadata
- 对象的属性ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
File file = new File("localfile");
public CompleteMultipartUploadResult uploadFile(UploadFileRequest uploadFileRequest) throws ObsException
uploadFileRequest
- 上传文件请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
UploadFileRequest uploadFileRequest = new
UploadFileRequest(bucketName, objectKey);
uploadFileRequest.setUploadFile("localFile");
// 开启断点续传模式
uploadFileRequest.setEnableCheckpoint(true);
CompleteMultipartUploadResult result =
obsClient.uploadFile(uploadFileRequest);
}
catch (ObsException e)
{
System.out.println( "upload object failed.
Error message: " + e.getErrorMessage()
+ ". ResponseCode: "
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public DownloadFileResult downloadFile(DownloadFileRequest downloadFileRequest) throws ObsException
downloadFileRequest
- 下载文件的请求参数ObsException
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk,
config);
DownloadFileRequest downloadFileRequest = new
DownloadFileRequest(bucketName, objectKey);
uploadFileRequest.setDownloadFile("localFileName");
// 开启断点续传模式
uploadFileRequest.setEnableCheckpoint(true);
DownloadFileResult result =
obsClient.downloadFile(downloadFileRequest);
}
catch (ObsException e)
{
System.out.println( "download object failed.
Error message: " + e.getErrorMessage()
+ ". ResponseCode: "
+ e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObsObject getObject(GetObjectRequest getObjectRequest) throws ObsException
getObjectRequest
- 下载对象的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
ObsObject obsObject = obsClient.getObject(getObjectRequest);
// 获得对象内容,并保存到本地
is = obsObject.getObjectContent();
File file = new File("localfile");
fos = new FileOutputStream(file);
int b = 0;
bos = new BufferedOutputStream(fos, 1024 * 1024 * 2);
while ((b = is.read()) != -1)
{
bos.write(b);
}
bos.flush();
}
catch (ObsException e)
{
System.out.println( "Get object failed. Error message: " + e.getErrorMessage() +
". ResponseCode: " + e.getResponseCode());
}
catch (FileNotFoundException e)
{
System.out.println( "Get object failed. Error message: " + e.getMessage());
}
catch (IOException e)
{
System.out.println( "Get object failed. Error message: " + e.getMessage());
}
finally
{
try
{
if (null != is)// 如果网络异常中断,可能会导致输入流未正常初始化
is.close();
if (null != fos)
fos.close();
if (null != bos)
bos.close();
}
catch (IOException e)
{
System.out.
println("Fail to close stream. Error message: " + e.getMessage());
}
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObsObject getObject(String bucketName, String objectKey, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
InputStream is = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getObject接口
ObsObject obsObject = obsClient.getObject(bucketName, objectKey, "object version id");
// 获得对象内容,并保存到本地
is = obsObject.getObjectContent();
File file = new File("localfile");
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, 1024 * 1024 * 2);
int b = 0;
while ((b = is.read()) != -1)
{
bos.write(b);
}
bos.flush();
System.out.println("get object success.");
System.out.println("object :" + obsObject.getObjectKey());
}
catch (ObsException e)
{
System.out.println("Get object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (null != is)// 如果网络异常中断,可能会导致输入流未正常初始化
is.close();
if (null != fos)
fos.close();
if (null != bos)
bos.close();
}
catch (IOException e)
{
System.out.
println("Fail to close stream. Error message: " + e.getMessage());
}
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObsObject getObject(String bucketName, String objectKey) throws ObsException
bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
InputStream is = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getObject接口
ObsObject obsObject = obsClient.getObject(bucketName, objectKey);
// 获得对象内容,并保存到本地
is = obsObject.getObjectContent();
File file = new File("localfile");
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, 1024 * 1024 * 2);
int b = 0;
while ((b = is.read()) != -1)
{
bos.write(b);
}
bos.flush();
System.out.println("get object success.");
System.out.println("object :" + obsObject.getObjectKey());
}
catch (ObsException e)
{
System.out.println("Get object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (null != is)// 如果网络异常中断,可能会导致输入流未正常初始化
is.close();
if (null != fos)
fos.close();
if (null != bos)
bos.close();
}
catch (IOException e)
{
System.out.
println("Fail to close stream. Error message: " + e.getMessage());
}
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObjectMetadata getObjectMetadata(GetObjectMetadataRequest request) throws ObsException
request
- 获取对象属性的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 调用getObjectMetadata接口查询对象元数据
GetObjectMetadataRequest request = new GetObjectMetadataRequest();
request.setBucketName(bucketName);
request.setObjectKey(objectKey);
ObjectMetadata metadata = obsClient.getObjectMetadata(request);
System.out.println("ContentLength: " + metadata.getContentLength()
+ ", ContentType: " + metadata.getContentType()
+ ", Metadata: " + metadata.getMetadata());
}
catch (ObsException e)
{
System.out.println( "Get metadata failed. Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObjectMetadata getObjectMetadata(String bucketName, String objectKey, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 调用getObjectMetadata接口查询对象元数据
ObjectMetadata metadata = obsClient.getObjectMetadata(bucketName,
objectKey, "object version id");
System.out.println("ContentLength: " + metadata.getContentLength()
+ ", ContentType: " + metadata.getContentType()
+ ", Metadata: " + metadata.getMetadata());
}
catch (ObsException e)
{
System.out.println( "Get metadata failed. Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public ObjectMetadata getObjectMetadata(String bucketName, String objectKey) throws ObsException
bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 调用getObjectMetadata接口查询对象元数据
ObjectMetadata metadata = obsClient.getObjectMetadata(bucketName,
objectKey);
System.out.println("ContentLength: " + metadata.getContentLength()
+ ", ContentType: " + metadata.getContentType()
+ ", Metadata: " + metadata.getMetadata());
}
catch (ObsException e)
{
System.out.println( "Get metadata failed. Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public RestoreObjectRequest.RestoreObjectStatus restoreObject(RestoreObjectRequest restoreObjectRequest) throws ObsException
restoreObjectRequest
- 取回归档存储对象的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
public HeaderResponse deleteObject(String bucketName, String objectKey, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteObject接口
obsClient.deleteObject(bucketName, objectKey, "object version id");
System.out.println("Delete object success.");
}
catch (ObsException e)
{
System.out.println("Delete object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse deleteObject(String bucketName, String objectKey) throws ObsException
bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteObject接口
obsClient.deleteObject(bucketName, objectKey);
System.out.println("Delete object success.");
}
catch (ObsException e)
{
System.out.println("Delete object failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest) throws ObsException
deleteObjectsRequest
- 批量删除对象的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey1 = "my-obs-object-key1";
String objectKey2 = "my-obs-object-key2";
//构造deleteObjects接口的入参对象DeleteObjectsRequest
DeleteObjectsRequest request = new DeleteObjectsRequest();
request.setBucketName(bucketName);
KeyAndVersion[] keyAndVersions = new KeyAndVersion[2];
keyAndVersions[0] = new KeyAndVersion(objectKey1);
keyAndVersions[1]= new KeyAndVersion(objectKey2);
request.setKeyAndVersions(keyAndVersions);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的deleteObjects接口
obsClient.deleteObjects(request);
System.out.println("Delete objects success.");
}
catch (ObsException e)
{
System.out.println("Delete objects failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public AccessControlList getObjectAcl(String bucketName, String objectKey, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getObjectAcl接口
AccessControlList acl = obsClient.getObjectAcl(bucketName, objectKey,
"object version id");
//在控制台输出获取的对象ACL信息
System.out.println("Get object acl success. Object: " + objectKey);
Owner owner = acl.getOwner();
if (null != owner)
{
System.out.println(" owner id:" + owner.getId());
System.out.println(" owner displayname:" +
owner.getDisplayName());
}
else
{
System.out.println(" owner is null");
}
GrantAndPermission[] grantAndPermissions = acl.getGrantAndPermissions();
if (null != grantAndPermissions)
{
for (int i = 0; i < grantAndPermissions.length; i++)
{
System.out.println(" permissions :" + grantAndPermissions[i].getPermission());
}
}
}
catch (ObsException e)
{
System.out.println("Get object acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public AccessControlList getObjectAcl(String bucketName, String objectKey) throws ObsException
bucketName
- 桶名objectKey
- 对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的getObjectAcl接口
AccessControlList acl = obsClient.getObjectAcl(bucketName, objectKey);
//在控制台输出获取的对象ACL信息
System.out.println("Get object acl success. Object: " + objectKey);
Owner owner = acl.getOwner();
if (null != owner)
{
System.out.println(" owner id:" + owner.getId());
System.out.println(" owner displayname:" +
owner.getDisplayName());
}
else
{
System.out.println(" owner is null");
}
GrantAndPermission[] grantAndPermissions = acl.getGrantAndPermissions();
if (null != grantAndPermissions)
{
for (int i = 0; i < grantAndPermissions.length; i++)
{
System.out.println(" permissions :" + grantAndPermissions[i].getPermission());
}
}
}
catch (ObsException e)
{
System.out.println("Get object acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setObjectAcl(String bucketName, String objectKey, String cannedACL, AccessControlList acl, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名cannedACL
- 预定义访问策略的字符串表示,有效值:acl
- 访问权限(acl和cannedACL不能同时使用)versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setObjectAcl接口
obsClient.setObjectAcl(bucketName, objectKey, "public-read", null, null);
System.out.println("Set object acl success.");
}
catch (ObsException e)
{
System.out.println("Set object acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setObjectAcl(String bucketName, String objectKey, AccessControlList acl, String versionId) throws ObsException
bucketName
- 桶名objectKey
- 对象名acl
- 访问权限versionId
- 对象版本号ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
AccessControlList acl = new AccessControlList();
Owner owner = new Owner();
owner.setId("owner domain id");
CanonicalGrantee cGrantee = new CanonicalGrantee();
cGrantee.setIdentifier("grantee domain id");
GroupGrantee gGrantee = new GroupGrantee();
gGrantee.setIdentifier( "http://acs.amazonaws.com/groups/global/AuthenticatedUsers");
acl.grantPermission(cGrantee, Permission.PERMISSION_READ);
acl.setOwner(owner);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setObjectAcl接口
obsClient.setObjectAcl(bucketName, objectKey, acl, "object version id");
System.out.println("Set object acl success.");
}
catch (ObsException e)
{
System.out.println("Set object acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse setObjectAcl(String bucketName, String objectKey, AccessControlList acl) throws ObsException
bucketName
- 桶名objectKey
- 对象名acl
- 访问权限ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
AccessControlList acl = new AccessControlList();
Owner owner = new Owner();
owner.setId("owner domain id");
CanonicalGrantee cGrantee = new CanonicalGrantee();
cGrantee.setIdentifier("grantee domain id");
GroupGrantee gGrantee = new GroupGrantee();
gGrantee.setIdentifier( "http://acs.amazonaws.com/groups/global/AuthenticatedUsers");
acl.grantPermission(cGrantee, Permission.PERMISSION_READ);
acl.setOwner(owner);
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的setObjectAcl接口
obsClient.setObjectAcl(bucketName, objectKey, acl);
System.out.println("Set object acl success.");
}
catch (ObsException e)
{
System.out.println("Set object acl failed. " + e.getErrorMessage() +
" response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest) throws ObsException
copyObjectRequest
- 复制对象请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
String sourceBucketName = "my-obs-source-bucket"; // 源对象所属的桶
String sourceObjectKey = "my-obs-source-object-key"; // 源对象
String destBucketName = "my-obs-dest-bucket"; // 要拷贝到的目标桶
String destObjectKey = "my-obs-dest-object-key"; // 目标对象
Map<String,Object> metadata = new HashMap<String,Object>();
metadata.put("x-amz-acl", "public-read");
ObjectMetadata newObjectMetadata = new ObjectMetadata();
newObjectMetadata.setMetadata(metadata);
CopyObjectRequest copyObjectRequest =
new CopyObjectRequest(sourceBucketName, sourceObjectKey,
destBucketName, destObjectKey);
copyObjectRequest.setNewObjectMetadata(newObjectMetadata);
CopyObjectResult copyObjectResult = obsClient.copyObject(copyObjectRequest);
// 新对象的Etag和修改日期
System.out.println("Etag: " + copyObjectResult.getEtag()
+ ", LastModified: " +
copyObjectResult.getLastModified());
public CopyObjectResult copyObject(String sourceBucketName, String sourceObjectKey, String destBucketName, String destObjectKey) throws ObsException
sourceBucketName
- 源桶名sourceObjectKey
- 源对象名destBucketName
- 目标桶名destObjectKey
- 目标对象名ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
String objectNewKey = "my-obs-object-new-key";
try
{
//实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
//调用ObsClient的copyObject接口
CopyObjectResult result = obsClient.copyObject(bucketName, objectKey, bucketName, objectNewKey);
System.out.println("Copy object success.");
}
catch (ObsException e)
{
System.out.println("Copy object failed. " + e.getErrorMessage() + " response code :" + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request) throws ObsException
request
- 初始化分段上传任务的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 封装初始化上传任务的请求
InitiateMultipartUploadRequest request =
new InitiateMultipartUploadRequest();
request.setBucketName(bucketName);
request.setObjectKey(objectKey);
// 调用initiateMultipartUpload接口初始化上传任务,获得任务Id
InitiateMultipartUploadResult imu =
obsClient.initiateMultipartUpload(request );
System.out.println("bucketName:" + imu.getBucketName()
+ "\tObjectKey:" + imu.getObjectKey()
+ "\tUploadId:" + imu.getUploadId());
}
catch (ObsException e)
{
System.out.println( "Initiate multipart upload failed. Error message: " +
e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public HeaderResponse abortMultipartUpload(AbortMultipartUploadRequest request) throws ObsException
request
- 取消分段上传任务的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 封装取消上传任务的请求
AbortMultipartUploadRequest request = new AbortMultipartUploadRequest();
request.setBucketName(bucketName);
request.setObjectKey(objectKey);
request.setUploadId("your upload id");
// 调用abortMultipartUpload接口,取消上传任务
obsClient.abortMultipartUpload(request);
}
catch (ObsException e)
{
System.out.
println("Abort multipart upload failed. Error message: " + e.getErrorMessage()
+ ". ResponseCode: " +
e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public UploadPartResult uploadPart(String bucketName, String objectKey, String uploadId, int partNumber, InputStream input) throws ObsException
bucketName
- 桶名objectKey
- 对象名uploadId
- 分段上传任务的ID号partNumber
- 分段号input
- 待上传的数据流ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
String uploadId = "your upload id";
int partNumber = 1;
String greeting = "Hello World!";
ByteArrayInputStream input = new ByteArrayInputStream(greeting.getBytes());
UploadPartResult result = obsClient.uploadPart(bucketName, objectKey, uploadId,
partNumber, input);
System.out.println("Etag: " + result.getEtag() +
" PartNumber: "+ result.getPartNumber());
}
catch (ObsException e)
{
System.out. println("Error message: " +
e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public UploadPartResult uploadPart(String bucketName, String objectKey, String uploadId, int partNumber, File file) throws ObsException
bucketName
- 桶名objectKey
- 对象名uploadId
- 分段上传任务的ID号partNumber
- 分段号file
- 待上传的文件ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
String uploadId = "your upload id";
int partNumber = 1;
UploadPartResult result = obsClient.uploadPart(bucketName, objectKey, uploadId,
partNumber, new File("localfile"));
System.out.println("Etag: " + result.getEtag() +
" PartNumber: "+ result.getPartNumber());
}
catch (ObsException e)
{
System.out. println("Error message: " +
e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public UploadPartResult uploadPart(UploadPartRequest request) throws ObsException
request
- 上传段的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 封装上传段的请求信息
File file = new File("localfile");// 要上传的文件
UploadPartRequest request = new UploadPartRequest(bucketName, objectKey,
file);
request.setUploadId("your upload id");
long partSize = 1024 * 1024 * 10;
request.setPartSize(partSize);//设置上传的每段大小为10MB
long uploadedLength = 0;
int partNumber = 1;
while(uploadedLength < file.length() ){
request.setPartNumber(partNumber);
request.setOffset(uploadedLength);//设置起始偏移位置
UploadPartResult uploadPart = obsClient.uploadPart(request);
System.out.println(partNumber + " part is : " + uploadPart.getEtag());
partNumber++;
uploadedLength += partSize;
}
}
catch (ObsException e)
{
System.out. println("Error message: " +
e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public CopyPartResult copyPart(CopyPartRequest request) throws ObsException
request
- 复制段的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String sourceBucketName = "my-obs-source-bucket";
String sourceObjectKey = "my-obs-source-object-key";
String destBucketName = "my-obs-dest-bucket";
String destObjectKey = "my-obs-dest-object-key";
// 设置请求信息
CopyPartRequest request = new CopyPartRequest();
request.setDestinationBucketName(destBucketName);// 目标桶名
request.setDestinationObjectKey(destObjectKey);// 目标对象名
request.setUploadId("your upload id");// 上传任务id
request.setPartNumber(1);// 要上传的段的段号
request.setSourceBucketName(sourceBucketName); // 源桶名
request.setSourceObjectKey(sourceObjectKey);// 源对象名
request.setByteRangeStart(0l);// 拷贝的起始位置
request.setByteRangeEnd(50l);// 拷贝的终止位置
public CompleteMultipartUploadResult completeMultipartUpload(CompleteMultipartUploadRequest request) throws ObsException
request
- 合并段的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
try
{
// 实例化ObsClient服务
obsClient = new ObsClient(ak, sk, config);
// 合并段的请求对象
CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest();
request.setBucketName(bucketName);// 设置桶名
request.setObjectKey(objectKey);// 设置对象名
// 要合并的段
PartEtag partEtag = new PartEtag();
partEtag.seteTag("your etag value");
partEtag.setPartNumber(1);
// 要合并的段集合
List<PartEtag> partEtags = new ArrayList<PartEtag>();
partEtags.add(partEtag);
request.setPartEtag(partEtags);
request.setUploadId("your upload id");
// 调用completeMultipartUpload接口,合并已上传的段
CompleteMultipartUploadResult result =
obsClient.completeMultipartUpload(request);
System.out.println("ObjectKey: "+result. getObjectKey()
+ ", Etag: " + result.getEtag());
public ListPartsResult listParts(ListPartsRequest request) throws ObsException
request
- 列举已上传段的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
String objectKey = "my-obs-object-key";
// 封装请求信息
ListPartsRequest request = new ListPartsRequest();
request.setBucketName(bucketName);
request.setKey(objectKey);
request.setUploadId("your upload id");
ListPartsResult partsList = obsClient.listParts(request);
List<Multipart> parts = partsList.getMultipartList();
for (Multipart multipart : parts)
{
System.out.println("Etag: "+multipart.getEtag()
+", PartNumber: "+multipart.getPartNumber()
+", Size: "
+multipart.getSize());
}
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
public MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest request) throws ObsException
request
- 列举分段上传任务的请求参数ObsException
- OBS SDK自定义异常,当调用接口失败、访问OBS失败时抛出该异常
config.setEndPoint(endPoint);
config.setHttpsOnly(true);
ObsClient obsClient = null;
String bucketName = "my-obs-bucket";
// 封装请求信息
ListMultipartUploadsRequest request = new ListMultipartUploadsRequest();
request.setBucketName(bucketName);
request.setMaxUploads(100);
request.setPrefix("obj");
// 调用listMultipartUploads方法列出上传任务的信息
MultipartUploadListing listing = obsClient.listMultipartUploads(request);
List<MultipartUpload> uploads = listing.getMultipartTaskList();
for (MultipartUpload multipartUpload : uploads)
{
System.out. println("UploadId: " +
multipartUpload.getUploadId()
+ ", Initiator: " +
multipartUpload.getInitiator().getId());
}
}
catch (ObsException e)
{
System.out.println("Error message: " + e.getErrorMessage()
+ ". ResponseCode: " + e.getResponseCode());
}finally{
try
{
if(obsClient != null){
obsClient.close();
}
}
catch (IOException e)
{
}
}
protected <T> T doActionWithResult(String action, String bucketName, com.obs.services.ObsClient.ActionCallbackWithResult<T> callback) throws ObsException
ObsException
protected void doAction(String action, String bucketName, com.obs.services.ObsClient.ActionCallback callback) throws ObsException
ObsException
public void close() throws IOException
close
在接口中 Closeable
close
在接口中 AutoCloseable
IOException
Copyright © 2018. All rights reserved.