1
1
package com .tencent .cos .xml .image ;
2
2
3
3
import android .os .Environment ;
4
+ import android .util .Log ;
4
5
5
6
import androidx .test .ext .junit .runners .AndroidJUnit4 ;
6
7
21
22
import com .tencent .cos .xml .model .tag .pic .PicOperationRule ;
22
23
import com .tencent .cos .xml .model .tag .pic .PicOperations ;
23
24
import com .tencent .cos .xml .model .tag .pic .PicUploadResult ;
25
+ import com .tencent .cos .xml .transfer .COSXMLUploadTask ;
24
26
25
27
import org .junit .Assert ;
28
+ import org .junit .BeforeClass ;
26
29
import org .junit .Rule ;
27
30
import org .junit .Test ;
28
31
import org .junit .runner .RunWith ;
40
43
@ RunWith (AndroidJUnit4 .class )
41
44
public class ImageTest {
42
45
43
- final String localImageName ="/test_image.png" ;
46
+ final static String localImageName ="/test_image.png" ;
44
47
45
- private void downloadImageToLocalPath () {
48
+ @ BeforeClass public static void downloadImageToLocalPath () {
46
49
47
50
TestUtils .removeLocalFile (TestUtils .localPath (localImageName ));
48
51
GetObjectRequest getObjectRequest = new GetObjectRequest (TestConst .PERSIST_BUCKET ,
@@ -56,9 +59,9 @@ private void downloadImageToLocalPath() {
56
59
}
57
60
}
58
61
62
+ // 通过 CosXmlService#putObject() 方法简单上传,返回 PutObjectResult
59
63
@ Test public void testPicOperationRule () {
60
64
61
- downloadImageToLocalPath ();
62
65
PutObjectRequest putObjectRequest = new PutObjectRequest (TestConst .PERSIST_BUCKET ,
63
66
TestConst .PERSIST_BUCKET_PIC_PATH , TestUtils .localPath (localImageName ));
64
67
try {
@@ -77,17 +80,57 @@ private void downloadImageToLocalPath() {
77
80
try {
78
81
putObjectResult = ServiceFactory .INSTANCE .newDefaultService ().putObject (putObjectRequest );
79
82
PicUploadResult uploadResult = putObjectResult .picUploadResult ();
83
+ Assert .assertNotNull (uploadResult );
84
+ Assert .assertFalse (uploadResult .processResults .isEmpty ());
80
85
Assert .assertEquals (200 , putObjectResult .httpCode );
81
86
} catch (Exception exception ) {
82
87
Assert .fail (exception .getMessage ());
83
88
}
84
89
}
85
90
91
+ // 通过 TransferManager 分片上传,返回 CompleteMultiUploadResult
92
+ @ Test public void transferManagerUploadPic () {
93
+
94
+ final TestLocker testLocker = new TestLocker ();
95
+ List <PicOperationRule > rules = new LinkedList <>();
96
+ // 添加一条将图片转化为 png 格式的 rule,处理后的图片在存储桶中的位置标识符为
97
+ // examplepngobject
98
+ rules .add (new PicOperationRule ("examplepngobject" , "imageView2/format/png" ));
99
+ rules .add (new PicOperationRule ("examplepngobject1" , "imageView2/format/png" ));
100
+ PicOperations picOperations = new PicOperations (true , rules );
101
+
102
+ PutObjectRequest putObjectRequest = new PutObjectRequest (TestConst .PERSIST_BUCKET ,
103
+ TestConst .PERSIST_BUCKET_PIC_PATH , TestUtils .localPath (localImageName ));
104
+ putObjectRequest .setPicOperations (picOperations );
105
+ Log .i ("transferManagerUploadPic" , "start " );
106
+ // 上传成功后,您将会得到 2 张图片,分别是原始图片和处理后图片
107
+ COSXMLUploadTask cosxmlUploadTask = ServiceFactory .INSTANCE .newDefaultTransferManager ().upload (putObjectRequest , "" );
108
+ cosxmlUploadTask .setCosXmlResultListener (new CosXmlResultListener () {
109
+ @ Override
110
+ public void onSuccess (CosXmlRequest request , CosXmlResult result ) {
111
+ Log .i ("transferManagerUploadPic" , "onSuccess " );
112
+ testLocker .release ();
113
+ }
114
+
115
+ @ Override
116
+ public void onFail (CosXmlRequest request , CosXmlClientException exception , CosXmlServiceException serviceException ) {
117
+ Log .i ("transferManagerUploadPic" , "onFail " );
118
+ testLocker .release ();
119
+ }
120
+ });
121
+ Log .i ("transferManagerUploadPic" , "lock " );
122
+ testLocker .lock ();
123
+ COSXMLUploadTask .COSXMLUploadTaskResult taskResult = (COSXMLUploadTask .COSXMLUploadTaskResult ) cosxmlUploadTask .getResult ();
124
+ Assert .assertNotNull (taskResult .picUploadResult );
125
+ Assert .assertNotNull (taskResult .picUploadResult .processResults );
126
+ Assert .assertFalse (taskResult .picUploadResult .processResults .isEmpty ());
127
+ }
128
+
86
129
@ Test public void testThumbnail () {
87
130
88
131
final TestLocker testLocker = new TestLocker (1 );
89
132
GetObjectRequest getObjectRequest = new GetObjectRequest (TestConst .PERSIST_BUCKET , TestConst .PERSIST_BUCKET_PIC_PATH ,
90
- TestUtils . localParentPath (), "pic2.png" );
133
+ Environment . getExternalStorageDirectory (). getAbsolutePath (), "pic2.png" );
91
134
92
135
Map <String , String > paras = new HashMap <>();
93
136
paras .put ("imageMogr2/thumbnail/!50p" , null );
0 commit comments