@@ -209,21 +209,32 @@ public class UploadFile {
209
209
210
210
### 3.4 断点续上传、分块并行上传
211
211
212
- 建设中...
212
+ 与普通上传类似:
213
+ ``` {java}
214
+ private void uploadFile() throws AuthException, JSONException{
215
+ PutPolicy p = new PutPolicy(bucketName);
216
+ p.returnBody = "{\"key\": $(key), \"hash\": $(etag),\"mimeType\": $(mimeType)}";
217
+ String upToken = p.token(mac);
218
+ PutRet ret = ResumeableIoApi.put(file, upToken, key, mimeType);
219
+ }
220
+
221
+ private void uploadStream() throws AuthException, JSONException, FileNotFoundException{
222
+ PutPolicy p = new PutPolicy(bucketName);
223
+ String upToken = p.token(mac);
224
+ FileInputStream fis = new FileInputStream(file);
225
+ PutRet ret = ResumeableIoApi.put(fis, upToken, key, mimeType);
226
+ }
227
+
228
+ ```
229
+ key,mimeType 可为null。
213
230
214
231
<a name =" io-put-policy " ></a >
215
232
216
233
### 3.5 上传策略
217
234
218
235
[ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 实际上是用 AccessKey/SecretKey 进行数字签名的上传策略(` rs.PutPolicy ` ),它控制则整个上传流程的行为。让我们快速过一遍你都能够决策啥:
219
236
220
- * ` expires ` 指定 [ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 有效期(默认1小时)。一个 [ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 可以被用于多次上传(只要它还没有过期)。
221
- * ` scope ` 限定客户端的权限。如果 ` scope ` 是 bucket,则客户端只能新增文件到指定的 bucket,不能修改文件。如果 ` scope ` 为 bucket: key ,则客户端可以修改指定的文件。** 注意: key必须采用utf8编码,如使用非utf8编码访问七牛云存储将反馈错误**
222
- * ` callbackUrl ` 设定业务服务器的回调地址,这样业务服务器才能感知到上传行为的发生。可选。
223
- * ` asyncOps ` 可指定上传完成后,需要自动执行哪些数据处理。这是因为有些数据处理操作(比如音视频转码)比较慢,如果不进行预转可能第一次访问的时候效果不理想,预转可以很大程度改善这一点。
224
- * ` returnBody ` 可调整返回给客户端的数据包(默认情况下七牛返回文件内容的 ` hash ` ,也就是下载该文件时的 ` etag ` )。这只在没有 ` CallbackUrl ` 时有效。
225
- * ` escape ` 为真(非0)时,表示客户端传入的 ` callbackParams ` 中含有转义符。通过这个特性,可以很方便地把上传文件的某些元信息如 ` fsize ` (文件大小)、` ImageInfo.width/height ` (图片宽度/高度)、` exif ` (图片EXIF信息)等传给业务服务器。
226
- * ` detectMime ` 为真(非0)时,表示服务端忽略客户端传入的 ` mimeType ` ,自己自行检测。
237
+ * ` expires ` 指定 [ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 有效时长。单位:秒(s),默认1小时,3600秒。deadline = System.currentTimeMillis() / 1000 + this.expires,不直接指定deadline。一个 [ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 可以被用于多次上传(只要它还没有过期)。
227
238
228
239
关于上传策略更完整的说明,请参考 [ uptoken] ( http://docs.qiniu.com/api/put.html#uploadToken ) 。
229
240
0 commit comments