11package com .qcloud .cos .demo ;
22
33import java .io .File ;
4+ import java .io .IOException ;
5+ import java .io .InputStream ;
46
57import com .qcloud .cos .COSClient ;
68import com .qcloud .cos .ClientConfig ;
79import com .qcloud .cos .auth .BasicCOSCredentials ;
810import com .qcloud .cos .auth .COSCredentials ;
11+ import com .qcloud .cos .exception .CosClientException ;
12+ import com .qcloud .cos .exception .CosServiceException ;
13+ import com .qcloud .cos .model .COSObject ;
914import com .qcloud .cos .model .GetObjectRequest ;
1015import com .qcloud .cos .model .ObjectMetadata ;
1116import com .qcloud .cos .region .Region ;
17+ import com .qcloud .cos .utils .IOUtils ;
1218
1319public class GetObjectDemo {
20+ private static COSClient cosClient = createClient ();
21+
1422 public static void main (String [] args ) {
1523 getObjectToFileDemo ();
1624 }
1725
18- private static void getObjectToFileDemo () {
26+ private static COSClient createClient () {
1927 // 初始化用户身份信息(secretId, secretKey)
2028 COSCredentials cred = new BasicCOSCredentials ("AKIDXXXXXXXX" ,"1A2Z3YYYYYYYYYY" );
2129 // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
2230 ClientConfig clientConfig = new ClientConfig (new Region ("ap-guangzhou" ));
2331 // 生成cos客户端
2432 COSClient cosclient = new COSClient (cred , clientConfig );
33+
34+ return cosclient ;
35+ }
36+
37+ private static void getObjectToFileDemo () {
2538 String key = "test/my_test.json" ;
2639 String bucketName = "mybucket-12500000000" ;
2740 boolean useTrafficLimit = false ;
@@ -30,8 +43,36 @@ private static void getObjectToFileDemo() {
3043 getObjectRequest .setTrafficLimit (8 *1024 *1024 );
3144 }
3245 File localFile = new File ("my_test.json" );
33- ObjectMetadata objectMetadata = cosclient .getObject (getObjectRequest , localFile );
46+ ObjectMetadata objectMetadata = cosClient .getObject (getObjectRequest , localFile );
3447 System .out .println (objectMetadata .getContentLength ());
3548 }
49+
50+ private static void getObjectDemo () throws IOException {
51+ String key = "test/my_test.json" ;
52+ String bucketName = "mybucket-12500000000" ;
53+ GetObjectRequest getObjectRequest = new GetObjectRequest (bucketName , key );
54+ InputStream cosObjectInput = null ;
55+
56+ try {
57+ COSObject cosObject = cosClient .getObject (getObjectRequest );
58+ cosObjectInput = cosObject .getObjectContent ();
59+ } catch (CosServiceException e ) {
60+ e .printStackTrace ();
61+ } catch (CosClientException e ) {
62+ e .printStackTrace ();
63+ }
64+
65+ // 处理下载到的流
66+ // 这里是直接读取,按实际情况来处理
67+ byte [] bytes = null ;
68+ try {
69+ bytes = IOUtils .toByteArray (cosObjectInput );
70+ } catch (IOException e ) {
71+ e .printStackTrace ();
72+ } finally {
73+ // 用完流之后一定要调用 close()
74+ cosObjectInput .close ();
75+ }
76+ }
3677}
3778
0 commit comments