关于Request
上传SDK中的Request包含objectKey(表示其名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg)、上传的文件(File)信息。在单块上传以及初始化多块上传时,开发者可以通过Request对象设置上传的文件的
读写权限(例:request.setCannedACL(CNCannedAccessControlList.PublicRead)),
文件类型(例:request.setContentType("video/mp4"),不设置默认为(application/octet-stream),以信息流的形式返回)等信息。
相关的request包括
- CNPutObjectRequest(单块上传)
/**
* objectKey 名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg
* file 上传的文件
*/
CNPutObjectRequest request = new CNPutObjectRequest(objectKey, file);
- CNInitiateMultipartUploadRequest(初始化多块上传)
/**
* objectKey 名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg
*/
CNInitiateMultipartUploadRequest request = new CNInitiateMultipartUploadRequest(objectKey);
- CNUploadPartRequest(上传分块)
/**
* objectKey 名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg
* uploadId 初始化时得到的uploadId
* file 需要上传的file
* offset 此分块在文件中内容的起始位置
* partNumber 此分块是第几块
* partSize 此分块的大小,单位为Byte
*/
CNUploadPartRequest request = new CNUploadPartRequest(key, uploadId, file, offset, partNumber, partSize);
- CNListPartsRequest(罗列出已经上传的块)
/**
* objectKey 名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg
* uploadId 初始化时得到的uploadId
*/
CNListPartsRequest listRequest = new CNListPartsRequest(objectKey, uploadId);
- CNCompleteMultipartUploadRequest(组装所有分块上传的文件)
/**
* listResult CNListPartsResult结果实体类,包含CNOwner及一个Parts容器类
*/
CNCompleteMultipartUploadRequest comRequest = new CNCompleteMultipartUploadRequest(listResult);
- CNAbortMultipartUploadRequest(取消分块上传)
/**
* objectKey 名称,实际就是一个可带斜线/的字符串,如/a/b/c/my.jpg
* uploadId 初始化时得到的uploadId
*/
CNAbortMultipartUploadRequest request = new CNAbortMultipartUploadRequest(objectKey, uploadId);
CannedAcl
CannedAcl是一种方便用户使用的方式,对常见的几种权限情况进行了封装。通过在CNPutObjectRequest与CNInitiateMultipartUploadRequest的setCannedACL(type)接口设置。
request.setCannedACL(CNCannedAccessControlList.PublicRead)
当前支持的CannedAcl包括:
| ACL | 添加的权限 |
|---|---|
Private(私有)(默认值)
|
Bucket Owner获得FULL_CONTROL,其他人没有任何权限 |
| PublicRead(公共读) | Bucket Owner获得FULL_CONTROL,其他人获得READ权限 |
| PublicReadWrite(公共读写) | Bucket Owner获得FULL_CONTROL,其他人获得READ和WRITE权限 |