Skip to content

Commit d17a260

Browse files
authored
Merge pull request #195 from tencentyun/dev/update_demo
update sce Demo
2 parents 760c7c2 + e48ad57 commit d17a260

File tree

3 files changed

+43
-22
lines changed

3 files changed

+43
-22
lines changed

src/main/java/com/qcloud/cos/demo/AsymmetricKeyEncryptionClientDemo.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ public class AsymmetricKeyEncryptionClientDemo {
4747

4848
private static COSClient cosClient = createCosClient();
4949

50+
public static void main(String[] args) throws Exception {
51+
putObjectDemo();
52+
getObjectDemo();
53+
// 关闭
54+
cosClient.shutdown();
55+
}
56+
5057
private static COSClient createCosClient() {
5158
return createCosClient("ap-guangzhou");
5259
}
@@ -76,12 +83,6 @@ private static COSClient createCosClient(String region) {
7683
CryptoConfiguration cryptoConf = new CryptoConfiguration(CryptoMode.AesCtrEncryption)
7784
.withStorageMode(CryptoStorageMode.ObjectMetadata);
7885

79-
//// 如果 kms 服务的 region 与 cos 的 region 不一致,则在加密信息里指定 kms 服务的 region
80-
//cryptoConf.setKmsRegion(kmsRegion);
81-
82-
//// 如果需要可以为 KMS 服务的 cmk 设置对应的描述信息。
83-
//encryptionMaterials.addDescription("kms-region", "guangzhou");
84-
8586
// 生成加密客户端EncryptionClient, COSEncryptionClient是COSClient的子类, 所有COSClient支持的接口他都支持。
8687
// EncryptionClient覆盖了COSClient上传下载逻辑,操作内部会执行加密操作,其他操作执行逻辑和COSClient一致
8788
COSEncryptionClient cosEncryptionClient =
@@ -157,11 +158,4 @@ private static void deleteObjectDemo() {
157158
// 删除文件
158159
cosClient.deleteObject(bucketName, key);
159160
}
160-
161-
public static void main(String[] args) throws Exception {
162-
putObjectDemo();
163-
getObjectDemo();
164-
// 关闭
165-
cosClient.shutdown();
166-
}
167161
}

src/main/java/com/qcloud/cos/demo/KmsUploadDemo.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@
77
import com.qcloud.cos.exception.CosClientException;
88
import com.qcloud.cos.exception.CosServiceException;
99
import com.qcloud.cos.internal.SkipMd5CheckStrategy;
10+
import com.qcloud.cos.model.COSObject;
11+
import com.qcloud.cos.model.COSObjectInputStream;
1012
import com.qcloud.cos.model.CompleteMultipartUploadRequest;
1113
import com.qcloud.cos.model.CompleteMultipartUploadResult;
1214
import com.qcloud.cos.model.CopyObjectRequest;
1315
import com.qcloud.cos.model.CopyObjectResult;
16+
import com.qcloud.cos.model.GetObjectRequest;
1417
import com.qcloud.cos.model.InitiateMultipartUploadRequest;
1518
import com.qcloud.cos.model.InitiateMultipartUploadResult;
1619
import com.qcloud.cos.model.PartETag;
@@ -21,8 +24,11 @@
2124
import com.qcloud.cos.model.UploadPartResult;
2225
import com.qcloud.cos.region.Region;
2326
import com.qcloud.cos.utils.Base64;
27+
import java.io.BufferedReader;
2428
import java.io.ByteArrayInputStream;
2529
import java.io.File;
30+
import java.io.IOException;
31+
import java.io.InputStreamReader;
2632
import java.util.LinkedList;
2733
import java.util.List;
2834

@@ -38,8 +44,14 @@ public class KmsUploadDemo {
3844
private static String encryptionContext = Base64.encodeAsString("{\"Ssekmstest\":\"Ssekmstest\"}".getBytes());
3945

4046
public static void main(String[] args) {
41-
simpleUploadWithKmsMeta();
42-
copyObjectWithKmsMeta();
47+
try {
48+
simpleUploadWithKmsMeta();
49+
simpledownloadWithKmsMeta();
50+
} catch (Exception e) {
51+
e.printStackTrace();
52+
} finally {
53+
cosClient.shutdown();
54+
}
4355
}
4456

4557
private static COSClient createCOSClient() {
@@ -72,6 +84,27 @@ private static void simpleUploadWithKmsMeta() {
7284
}
7385
}
7486

87+
private static void simpledownloadWithKmsMeta() throws IOException {
88+
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
89+
COSObject cosObject = null;
90+
try {
91+
cosObject = cosClient.getObject(getObjectRequest);
92+
COSObjectInputStream cosObjectInputStream = cosObject.getObjectContent();
93+
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(cosObjectInputStream));
94+
System.out.println(bufferedReader.readLine());
95+
} catch (CosServiceException e) {
96+
e.printStackTrace();
97+
} catch (CosClientException e) {
98+
e.printStackTrace();
99+
} catch (IOException e) {
100+
e.printStackTrace();
101+
} finally {
102+
if (cosObject != null) {
103+
cosObject.close();
104+
}
105+
}
106+
}
107+
75108
private static void multipartUploadWithKmsMeta() {
76109
InitiateMultipartUploadRequest initiateMultipartUploadRequest = new InitiateMultipartUploadRequest(bucketName, key);
77110
SSECOSKeyManagementParams ssecosKeyManagementParams = new SSECOSKeyManagementParams(kmsKeyId, encryptionContext);

src/main/java/com/qcloud/cos/demo/SymmetricKeyEncryptionClientDemo.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,10 @@ private static COSClient createCosClient(String region) {
7575

7676
// 初始化 KMS 加密材料
7777
EncryptionMaterials encryptionMaterials = new EncryptionMaterials(symKey);
78-
// 使用AES/GCM模式,并将加密信息存储在文件元信息中.
78+
// 使用AES模式,并将加密信息存储在文件元信息中,暂不支持GCM模式
7979
CryptoConfiguration cryptoConf = new CryptoConfiguration(CryptoMode.AesCtrEncryption)
8080
.withStorageMode(CryptoStorageMode.ObjectMetadata);
8181

82-
//// 如果 kms 服务的 region 与 cos 的 region 不一致,则在加密信息里指定 kms 服务的 region
83-
//cryptoConf.setKmsRegion(kmsRegion);
84-
85-
//// 如果需要可以为 KMS 服务的 cmk 设置对应的描述信息。
86-
//encryptionMaterials.addDescription("kms-region", "guangzhou");
87-
8882
// 生成加密客户端EncryptionClient, COSEncryptionClient是COSClient的子类, 所有COSClient支持的接口他都支持。
8983
// EncryptionClient覆盖了COSClient上传下载逻辑,操作内部会执行加密操作,其他操作执行逻辑和COSClient一致
9084
COSEncryptionClient cosEncryptionClient =

0 commit comments

Comments
 (0)