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 ();
1421 public static void main (String [] args ) {
1522 getObjectToFileDemo ();
1623 }
1724
18- private static void getObjectToFileDemo () {
25+ private static COSClient createClient () {
1926 // 初始化用户身份信息(secretId, secretKey)
2027 COSCredentials cred = new BasicCOSCredentials ("AKIDXXXXXXXX" ,"1A2Z3YYYYYYYYYY" );
2128 // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
2229 ClientConfig clientConfig = new ClientConfig (new Region ("ap-guangzhou" ));
2330 // 生成cos客户端
2431 COSClient cosclient = new COSClient (cred , clientConfig );
32+
33+ return cosclient ;
34+ }
35+
36+ private static void getObjectToFileDemo () {
2537 String key = "test/my_test.json" ;
2638 String bucketName = "mybucket-12500000000" ;
2739 boolean useTrafficLimit = false ;
@@ -30,8 +42,36 @@ private static void getObjectToFileDemo() {
3042 getObjectRequest .setTrafficLimit (8 *1024 *1024 );
3143 }
3244 File localFile = new File ("my_test.json" );
33- ObjectMetadata objectMetadata = cosclient .getObject (getObjectRequest , localFile );
45+ ObjectMetadata objectMetadata = cosClient .getObject (getObjectRequest , localFile );
3446 System .out .println (objectMetadata .getContentLength ());
3547 }
48+
49+ private static void getObjectDemo () throws IOException {
50+ String key = "test/my_test.json" ;
51+ String bucketName = "mybucket-12500000000" ;
52+ GetObjectRequest getObjectRequest = new GetObjectRequest (bucketName , key );
53+ InputStream cosObjectInput = null ;
54+
55+ try {
56+ COSObject cosObject = cosClient .getObject (getObjectRequest );
57+ cosObjectInput = cosObject .getObjectContent ();
58+ } catch (CosServiceException e ) {
59+ e .printStackTrace ();
60+ } catch (CosClientException e ) {
61+ e .printStackTrace ();
62+ }
63+
64+ // 处理下载到的流
65+ // 这里是直接读取,按实际情况来处理
66+ byte [] bytes = null ;
67+ try {
68+ bytes = IOUtils .toByteArray (cosObjectInput );
69+ } catch (IOException e ) {
70+ e .printStackTrace ();
71+ } finally {
72+ // 用完流之后一定要调用 close()
73+ cosObjectInput .close ();
74+ }
75+ }
3676}
3777
0 commit comments