package demo;
import java.io.File;
import java.util.List;
import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.Bucket;
import com.qcloud.cos.model.COSObjectSummary;
import com.qcloud.cos.model.CannedAccessControlList;
import com.qcloud.cos.model.CreateBucketRequest;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.model.ListObjectsRequest;
import com.qcloud.cos.model.ObjectListing;
import com.qcloud.cos.model.ObjectMetadata;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.region.Region;
public class Demo01 {
private COSClient client;
public Demo01(){
if(client!=null) {
client.shutdown();
}
String secretId = "your_id";
String secretKey = "your_key";
COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
Region region = new Region("ap-chengdu");
ClientConfig clientConfig = new ClientConfig(region);
// 3 生成 cos 客户端。
client = new COSClient(cred, clientConfig);
}
public List<Bucket> listBuckets() {
return client.listBuckets();
}
public void listObject() {
try {
String bucket = "websource01-1252449330";
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
// 设置 bucket 名称
listObjectsRequest.setBucketName(bucket);
// prefix 表示列出的 object 的 key 以 prefix 开始
listObjectsRequest.setPrefix("");
// 设置最大遍历出多少个对象, 一次 listobject 最大支持1000
listObjectsRequest.setMaxKeys(1000);
listObjectsRequest.setDelimiter("/");
ObjectListing objectListing = client.listObjects(listObjectsRequest);
for (COSObjectSummary cosObjectSummary : objectListing.getObjectSummaries()) {
// 对象的路径 key
String key = cosObjectSummary.getKey();
// 对象的 etag
String etag = cosObjectSummary.getETag();
// 对象的长度
long fileSize = cosObjectSummary.getSize();
// 对象的存储类型
String storageClass = cosObjectSummary.getStorageClass();
System.out.println("key:" + key + "; etag:" + etag + "; fileSize:" + fileSize + "; storageClass:" + storageClass);
}
} catch (CosServiceException serverException) {
serverException.printStackTrace();
} catch (CosClientException clientException) {
clientException.printStackTrace();
}
}
public void uploadFile() {
try {
// 指定要上传的文件
File localFile = new File("D:\\Chrome Download\\test.txt");
// 指定要上传到的存储桶
String bucketName = "websource01-1252449330";
// 指定要上传到 COS 上对象键
String key = "dwqeqweqwe";
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
PutObjectResult putObjectResult = client.putObject(putObjectRequest);
} catch (CosServiceException serverException) {
serverException.printStackTrace();
} catch (CosClientException clientException) {
clientException.printStackTrace();
}
}
public void downloadFile() {
try{
// 指定对象所在的存储桶
String bucketName = "websource01-1252449330";
// 指定对象在 COS 上的对象键
String key = "dwqeqweqwe";
// 指定要下载到的本地路径
File downFile = new File("D:\\dwqeqweqwe.txt");
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
ObjectMetadata downObjectMeta = client.getObject(getObjectRequest, downFile);
} catch (CosServiceException serverException) {
serverException.printStackTrace();
} catch (CosClientException clientException) {
clientException.printStackTrace();
}
}
public void createBucket(String name) {
//String bucket = "examplebucket-1250000000"; //存储桶名称,格式:BucketName-APPID
CreateBucketRequest createBucketRequest = new CreateBucketRequest(name);
// 设置 bucket 的权限为 PublicRead(公有读私有写), 其他可选有私有读写, 公有读写
createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);
try{
Bucket bucketResult = client.createBucket(createBucketRequest);
} catch (CosServiceException serverException) {
System.out.println(1);
serverException.printStackTrace();
} catch (CosClientException clientException) {
System.out.println(2);
clientException.printStackTrace();
}
}
public static void main(String[] args) {
Demo01 demo=new Demo01();
//System.out.println(demo.listBuckets());
//demo.createBucket("testbucket01-1252449330");
//demo.uploadFile();
demo.listObject();
}
}