Skip to content

Commit 2e962b4

Browse files
authored
Merge pull request #459 from YangSen-qn/develop
support Uri & InputStream
2 parents 146ebef + 292a869 commit 2e962b4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2971
-1321
lines changed

.github/workflows/ci-test.yml

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ jobs:
1818
uses: reactivecircus/android-emulator-runner@v2
1919
with:
2020
api-level: 22
21+
profile: Nexus 6
22+
arch: x86_64
2123
script: |
2224
./gradlew connectedCheck
2325
./gradlew build

CHANGELOG.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#Changelog
2+
## 8.3.0(2021-05-12)
3+
* 支持资源通过 Uri 和 InputStream 方式上传
4+
25
## 8.2.1(2021-04-14)
36
* 优化分片上传逻辑,增加重试
47

58
## 8.2.0(2021-02-20)
6-
## 增加
79
* 增加网络监控功能,选择最优 Host 进行上传
810
* 优化日志统计
911

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ https://github.com/qiniudemo/qiniu-lab-android
1515

1616
| Qiniu SDK 版本 | 最低 Android版本 | 依赖库版本 |
1717
|------------ |-----------------|------------------------|
18+
| 8.3.x | Android 5.0+ | okhttp 4+ |
1819
| 8.2.x | Android 5.0+ | okhttp 4+ |
1920
| 8.1.x | Android 5.0+ | okhttp 4+ |
2021
| 8.0.x | Android 5.0+ | okhttp 4+ |
@@ -29,7 +30,7 @@ https://github.com/qiniudemo/qiniu-lab-android
2930
| 7.0.7 | Android 2.2+ | android-async-http 1.4.8 |
3031

3132
### 注意
32-
* 推荐使用最新版:8.2.1
33+
* 推荐使用最新版:8.3.0
3334
* AndroidNetwork.getMobileDbm()可以获取手机信号强度,需要如下权限(API>=18时生效)
3435
```
3536
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

library/build.gradle

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ android {
2424
buildToolsVersion '29.0.2'
2525
defaultConfig {
2626
//applicationId "com.qiniu.android"
27-
minSdkVersion 15
27+
minSdkVersion 19
2828
targetSdkVersion 26
2929
versionCode code
3030
versionName version
@@ -52,7 +52,8 @@ android {
5252

5353
dependencies {
5454
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
55-
implementation 'com.qiniu:happy-dns:0.2.16'
55+
// implementation 'com.squareup.okhttp3:okhttp:3.12.1'
56+
implementation 'com.qiniu:happy-dns:0.2.18'
5657
// for javax.annotation.Nullable use in custom MultipartBody and Headers implements.
5758
// implementation 'com.google.code.findbugs:jsr305:3.0.2'
5859
implementation 'org.conscrypt:conscrypt-android:2.2.1'

library/library.iml

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.3.50@jar" level="project" />
9898
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50@jar" level="project" />
9999
<orderEntry type="library" name="Gradle: org.jetbrains:annotations:13.0@jar" level="project" />
100-
<orderEntry type="library" name="Gradle: com.qiniu:happy-dns:0.2.16@jar" level="project" />
100+
<orderEntry type="library" name="Gradle: com.qiniu:happy-dns:0.2.18@jar" level="project" />
101101
<orderEntry type="library" name="Gradle: org.conscrypt:conscrypt-android:2.2.1@aar" level="project" />
102102
<orderEntry type="library" name="Gradle: android.test.mock-android-29" level="project" />
103103
<orderEntry type="library" name="Gradle: android.test.base-android-29" level="project" />

library/src/androidTest/java/com/qiniu/android/ComplexUploadSceneTest.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public void testMutiUploadV1(){
4848
continue;
4949
}
5050

51-
uploadFile(file, keyUp, config, null, new UpCompletionHandler() {
51+
UploadInfo<File> info = new UploadInfo<>(file);
52+
info.configWithFile(file);
53+
upload(info, keyUp, config, null, new UpCompletionHandler() {
5254
@Override
5355
public void complete(String key, ResponseInfo info, JSONObject response) {
5456
synchronized (param){
@@ -100,7 +102,9 @@ public void testMutiUploadV2(){
100102
continue;
101103
}
102104

103-
uploadFile(file, keyUp, config, null, new UpCompletionHandler() {
105+
UploadInfo<File> info = new UploadInfo<>(file);
106+
info.configWithFile(file);
107+
upload(info, keyUp, config, null, new UpCompletionHandler() {
104108
@Override
105109
public void complete(String key, ResponseInfo info, JSONObject response) {
106110
synchronized (param){

library/src/androidTest/java/com/qiniu/android/ConcurrentResumeUploadTest.java

+22-22
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ public void testCancelV1() {
6060
String key = "android_concurrent_resume_cancel_v1_" + size + "k";
6161
try {
6262
File file = TempFile.createFile(size, key);
63-
cancelTest(cancelPercent, file, key, configuration, null);
63+
cancelTest((long) (size * cancelPercent), file, key, configuration, null);
6464
TempFile.remove(file);
6565
} catch (IOException e) {
6666
e.printStackTrace();
6767
}
6868
}
6969
}
7070

71-
public void testHttpV1(){
71+
public void testHttpV1() {
7272
Configuration configuration = new Configuration.Builder()
7373
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V1)
7474
.useConcurrentResumeUpload(true)
@@ -87,7 +87,7 @@ public void testHttpV1(){
8787
}
8888
}
8989

90-
public void testHttpsV1(){
90+
public void testHttpsV1() {
9191
Configuration configuration = new Configuration.Builder()
9292
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V1)
9393
.useConcurrentResumeUpload(true)
@@ -106,27 +106,27 @@ public void testHttpsV1(){
106106
}
107107
}
108108

109-
public void testReuploadV1(){
109+
public void testReuploadV1() {
110110
Configuration configuration = new Configuration.Builder()
111111
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V1)
112112
.useConcurrentResumeUpload(true)
113113
.useHttps(true)
114-
.chunkSize(1024*1024)
114+
.chunkSize(1024 * 1024)
115115
.build();
116116
int[] sizeArray = {30000};
117117
for (int size : sizeArray) {
118118
String key = "android_concurrent_resume_reupload_v1_" + size + "k";
119119
try {
120120
File file = TempFile.createFile(size, key);
121-
reuploadUploadTest((float)0.7, file, key, configuration, null);
121+
reuploadUploadTest((long) (size * 0.7), file, key, configuration, null);
122122
TempFile.remove(file);
123123
} catch (IOException e) {
124124
e.printStackTrace();
125125
}
126126
}
127127
}
128128

129-
public void testNoKeyV1(){
129+
public void testNoKeyV1() {
130130
int size = 600;
131131
String key = "android_concurrent_resume_no_key_v1_" + size + "k";
132132
File file = null;
@@ -153,7 +153,7 @@ public void testNoKeyV1(){
153153
TempFile.remove(file);
154154
}
155155

156-
public void test0kV1(){
156+
public void test0kV1() {
157157
int size = 0;
158158
String key = "android_concurrent_resume_0k_v1_" + size + "k";
159159
File file = null;
@@ -185,7 +185,7 @@ public void testSwitchRegionV2() {
185185
Configuration configuration = new Configuration.Builder()
186186
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
187187
.useConcurrentResumeUpload(true)
188-
.chunkSize(4*1024*1024)
188+
.chunkSize(4 * 1024 * 1024)
189189
.useHttps(true)
190190
.build();
191191
int[] sizeArray = {5000, 8000, 10000, 20000};
@@ -206,30 +206,30 @@ public void testCancelV2() {
206206
Configuration configuration = new Configuration.Builder()
207207
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
208208
.useConcurrentResumeUpload(true)
209-
.chunkSize(4*1024*1024)
209+
.chunkSize(4 * 1024 * 1024)
210210
.useHttps(true)
211211
.build();
212212
int[] sizeArray = {10000, 20000};
213213
for (int size : sizeArray) {
214214
String key = "android_concurrent_resume_cancel_v2_" + size + "k";
215215
try {
216216
File file = TempFile.createFile(size, key);
217-
cancelTest(cancelPercent, file, key, configuration, null);
217+
cancelTest((long) (size * cancelPercent), file, key, configuration, null);
218218
TempFile.remove(file);
219219
} catch (IOException e) {
220220
e.printStackTrace();
221221
}
222222
}
223223
}
224224

225-
public void testHttpV2(){
225+
public void testHttpV2() {
226226
Configuration configuration = new Configuration.Builder()
227227
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
228228
.useConcurrentResumeUpload(true)
229-
.chunkSize(4*1024*1024)
229+
.chunkSize(4 * 1024 * 1024)
230230
.useHttps(false)
231231
.build();
232-
int[] sizeArray = {500, 1000, 3000, 4000, 5000, 8000, 10000, 20000};
232+
int[] sizeArray = {500, 2000, 4000, 5000, 8000, 20000};
233233
long timestamp = new Date().getTime();
234234
for (int size : sizeArray) {
235235
String key = "android_concurrent_resume_http_v2_" + timestamp + "_" + size + "k";
@@ -243,14 +243,14 @@ public void testHttpV2(){
243243
}
244244
}
245245

246-
public void testHttpsV2(){
246+
public void testHttpsV2() {
247247
Configuration configuration = new Configuration.Builder()
248248
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
249249
.useConcurrentResumeUpload(true)
250250
.useHttps(true)
251-
.chunkSize(4*1024*1024)
251+
.chunkSize(4 * 1024 * 1024)
252252
.build();
253-
int[] sizeArray = {500, 1000, 3000, 4000, 5000, 8000, 10000, 20000};
253+
int[] sizeArray = {500, 2000, 4000, 5000, 8000, 20000};
254254
for (int size : sizeArray) {
255255
String key = "android_concurrent_resume_https_v2_" + size + "k";
256256
try {
@@ -263,27 +263,27 @@ public void testHttpsV2(){
263263
}
264264
}
265265

266-
public void testReuploadV2(){
266+
public void testReuploadV2() {
267267
Configuration configuration = new Configuration.Builder()
268268
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
269269
.useConcurrentResumeUpload(true)
270270
.useHttps(true)
271-
.chunkSize(4*1024*1024)
271+
.chunkSize(4 * 1024 * 1024)
272272
.build();
273273
int[] sizeArray = {30000};
274274
for (int size : sizeArray) {
275275
String key = "android_concurrent_resume_reupload_v2_" + size + "k";
276276
try {
277277
File file = TempFile.createFile(size, key);
278-
reuploadUploadTest((float)0.7, file, key, configuration, null);
278+
reuploadUploadTest((long) (size * 0.7), file, key, configuration, null);
279279
TempFile.remove(file);
280280
} catch (IOException e) {
281281
e.printStackTrace();
282282
}
283283
}
284284
}
285285

286-
public void testNoKeyV2(){
286+
public void testNoKeyV2() {
287287
int size = 600;
288288
String key = "android_concurrent_resume_no_key_v2_" + size + "k";
289289
File file = null;
@@ -310,7 +310,7 @@ public void testNoKeyV2(){
310310
TempFile.remove(file);
311311
}
312312

313-
public void test0kV2(){
313+
public void test0kV2() {
314314
int size = 0;
315315
String key = "android_concurrent_resume_0k_v2_" + size + "k";
316316
File file = null;

0 commit comments

Comments
 (0)