@@ -126,11 +126,12 @@ class ResumableIO {
126126具体用法和` IO.put ` 的类似。
127127
128128#### 续上传
129- 续上传的进度信息都储存在com.qiniu.resumableio.PutExtra. 所以当上传失败的时候,可以将PutExtra持久化下来,等到下一次上传的时候,再使用这个PutExtra,具体代码实现如下
129+ 续上传的进度信息都储存在com.qiniu.resumableio.PutExtra. 所以当上传失败的时候,可以将PutExtra持久化下来,等到下一次上传的时候,再使用这个PutExtra,具体代码实现如下。
130+
131+ 上传进度持久化:
130132
131- 失败状况
132133``` java
133- final int PERSIST_PACE = 5 ;
134+ final int PERSIST_PACE = 5 ; // 每5%进度持久化一次
134135final PutExtra extra = new PutExtra ();
135136final String key = " key" ;
136137final String filepath = " xx/xx/xx" ;
@@ -149,7 +150,7 @@ ResumableIO.put(key, InputStreamAt.fromFile(new File(filepath)), extra, new JSON
149150 }
150151 public void onProcess (int current , int total ) {
151152 process = current* 100 / total;
152- // 每5%持久化一次
153+ // 每特定进度持久化一次
153154 if (process - lastPersistProcess > PERSIST_PACE ) {
154155 persist();
155156 lastPersistProcess = process;
@@ -162,12 +163,16 @@ ResumableIO.put(key, InputStreamAt.fromFile(new File(filepath)), extra, new JSON
162163})
163164```
164165
165- 续传恢复
166+ 恢复上传进度:
167+
166168``` java
167169JSONObject ret = db. GetOne (" SELECT * FROM `table_resumable_table` LIMIT 0, 1" );
168170PutExtra extra = new PutExtra (ret. optString(" extraJson" , " " ));
169171String key = ret. optString(" key" , " " );
170172String filepath = ret. optString(" filepath" , " " );
173+
174+ // 实际情况中,很可能出现本地文件在续传时已被删除或者修改的情况,开发者应在恢复上传前先做相应的校验。
175+
171176ResumableIO . put(key, InputStreamAt . fromFile(new File (filepath)), extra, new JSONObjectRet () {... });
172177```
173178
0 commit comments