@@ -65,7 +65,7 @@ Android SDK只包含了最终用户使用场景中的必要功能。相比服务
6565
6666该方法的详细说明如下:
6767
68- ```
68+ ``` java
6969public void put(String key,
7070 InputStreamAt isa,
7171 com.qiniu.io. PutExtra extra,
@@ -91,7 +91,7 @@ public void put(String key,
9191
9292以下是一个关于` PutExtra ` 使用的示例:
9393
94- ```
94+ ``` java
9595extra. mimeType = " application/json" ; // 强制设置MIME类型
9696
9797extra. params = new HashMap<String , String > ();
@@ -114,7 +114,7 @@ extra.params.put("x:a", "bb"); // 设置一个自定义变量
114114
115115开发者可以基于分片上传机制实现断点续上传功能。
116116
117- ```
117+ ``` java
118118class ResumableIO {
119119 public static void put (String key ,
120120 InputStreamAt isa ,
@@ -125,7 +125,35 @@ class ResumableIO {
125125
126126具体用法和` IO.put ` 的类似。
127127
128- > TODO: 这个没写完。这一节应该要告诉开发者,要断点续传的话应该持久化哪些东西,然后恢复上传时需要将之前持久化的东西设置到哪里去。
128+ #### 续上传
129+ 续上传的进度信息都储存在com.qiniu.resumableio.PutExtra. 所以当上传失败的时候,可以将PutExtra持久化下来,等到下一次上传的时候,再使用这个PutExtra,具体代码实现如下
130+
131+ 失败状况
132+ ``` java
133+ final PutExtra extra = new PutExtra ();
134+ final String key = " key" ;
135+ final String filepath = " xx/xx/xx" ;
136+ ResumableIO . put(key, InputStreamAt . fromFile(new File (filepath)), extra, new JSONObjectRet () {
137+ int process;
138+ public void onProcess (int current , int total ) {
139+ process = current/ total;
140+ }
141+ // ...省略成功分支处理代码
142+ public void onFailure (Exception ex ) {
143+ // 忽略处理exception,
144+ db. execute(" INSERT INTO `table_resumable_table` (`key`, `filepath`, `extraJson`, `process`) VALUES ('" + key + " ', '" + filepath + " ', '" + extra. toJSON() + " ', " + process + " )" );
145+ }
146+ })
147+ ```
148+
149+ 续传恢复
150+ ``` java
151+ JSONObject ret = db. GetOne (" SELECT * FROM `table_resumable_table` LIMIT 0, 1" );
152+ PutExtra extra = new PutExtra (ret. optString(" extraJson" , " " ));
153+ String key = ret. optString(" key" , " " );
154+ String filepath = ret. optString(" filepath" , " " );
155+ ResumableIO . put(key, InputStreamAt . fromFile(new File (filepath)), extra, new JSONObjectRet () {... });
156+ ```
129157
130158<a name =" upload-concurrency " ></a >
131159### 上传中的并发性
0 commit comments