Class UploadManager
- java.lang.Object
-
- com.qiniu.storage.UploadManager
-
public final class UploadManager extends java.lang.Object
七牛文件上传管理器,通过该类上传文件时,会自动根据定义的Configuration.putThreshold
来判断是采用表单上传还是分片上传的方法,超过了定义的Configuration.putThreshold
就会采用 分片上传的方法,可以在构造该类对象的时候,通过Configuration
类来自定义这个值。 一般默认可以使用这个类的方法来上传数据和文件。这个类自动检测文件的大小,
-
-
Constructor Summary
Constructors Constructor Description UploadManager(Client client, Recorder recorder)
构建一个支持断点续传的上传对象。只在文件采用分片上传时才会有效。 分块上传中,将每一块上传的记录保存下来。上传中断后可在上一次断点记录基础上上传剩余部分。 对于不同的文件上传需要支持断点续传的情况,请定义不同的UploadManager对象,而不要共享。UploadManager(Configuration config)
构建一个非断点续传的上传对象UploadManager(Configuration config, Recorder recorder)
构建一个支持断点续传的上传对象。只在文件采用分片上传时才会有效。 分块上传中,将每一块上传的记录保存下来。上传中断后可在上一次断点记录基础上上传剩余部分。 对于不同的文件上传需要支持断点续传的情况,请定义不同的UploadManager对象,而不要共享。
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
asyncPut(byte[] data, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc, UpCompletionHandler handler)
异步上传数据,表单上传Response
put(byte[] data, java.lang.String key, java.lang.String token)
上传字节数组,表单上传 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传Response
put(byte[] data, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc)
上传字节数组,表单上传 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传Response
put(java.io.File file, java.lang.String key, java.lang.String token)
上传文件Response
put(java.io.File file, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc)
上传文件 * file size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 分片上传:支持分片上传 v1/v2,支持并发,支持断点续传Response
put(java.io.InputStream inputStream, long size, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc)
上传字节流,小文件走表单,大文件走分片Response
put(java.io.InputStream stream, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime)
流式上传,通常情况建议文件上传,文件上传可以使用持久化的断点记录。Response
put(java.lang.String filePath, java.lang.String key, java.lang.String token)
上传文件Response
put(java.lang.String filePath, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc)
上传文件
-
-
-
Constructor Detail
-
UploadManager
public UploadManager(Configuration config)
构建一个非断点续传的上传对象- Parameters:
config
- 配置类对象【必须】
-
UploadManager
public UploadManager(Configuration config, Recorder recorder)
构建一个支持断点续传的上传对象。只在文件采用分片上传时才会有效。 分块上传中,将每一块上传的记录保存下来。上传中断后可在上一次断点记录基础上上传剩余部分。 对于不同的文件上传需要支持断点续传的情况,请定义不同的UploadManager对象,而不要共享。- Parameters:
config
- 配置类对象【必须】recorder
- 断点记录对象【可选】
-
-
Method Detail
-
put
public Response put(java.io.InputStream inputStream, long size, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc) throws QiniuException
上传字节流,小文件走表单,大文件走分片inputStream size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 流式分片上传:支持分片上传 v1/v2,支持并发,不支持断点续传
inputStream size 小于 configuration.putThreshold 时采用表单上传 表单上传会占用 inputStream size 大小内存
- Parameters:
inputStream
- 文件流【必须】size
- 文件大小【必须】key
- 保存文件名【可选】token
- 上传凭证【必须】params
- 自定义参数【可选】 自定义文件 metadata 信息,key 需要增加前缀 x-qn-meta- :如 params.put("x-qn-meta-key", "foo") 用户自定义变量,key 需要增加前缀 x: :如 params.put("x:foo", "foo")mime
- 文件 mime type【可选】checkCrc
- 是否检测 crc【可选】- Returns:
- Response
- Throws:
QiniuException
- 上传失败异常
-
put
public Response put(byte[] data, java.lang.String key, java.lang.String token) throws QiniuException
上传字节数组,表单上传 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传- Parameters:
data
- 上传的数据【必须】key
- 上传数据保存的文件名【可选】token
- 上传凭证【必须】- Returns:
- Response
- Throws:
QiniuException
- 上传失败异常
-
put
public Response put(byte[] data, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc) throws QiniuException
上传字节数组,表单上传 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传- Parameters:
data
- 上传的数据【必须】key
- 上传数据保存的文件名【可选】token
- 上传凭证【必须】params
- 自定义参数【可选】 自定义文件 metadata 信息,key 需要增加前缀 x-qn-meta- :如 params.put("x-qn-meta-key", "foo") 用户自定义变量,key 需要增加前缀 x: :如 params.put("x:foo", "foo")mime
- 指定文件mimetype【可选】checkCrc
- 是否验证crc32【可选】- Returns:
- Response
- Throws:
QiniuException
- 上传失败异常
-
put
public Response put(java.lang.String filePath, java.lang.String key, java.lang.String token) throws QiniuException
上传文件- Parameters:
filePath
- 上传的文件路径【必须】key
- 上传文件保存的文件名【可选】token
- 上传凭证【必须】- Returns:
- Response
- Throws:
QiniuException
- 异常
-
put
public Response put(java.lang.String filePath, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc) throws QiniuException
上传文件file size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 分片上传:支持分片上传 v1/v2,支持并发,支持断点续传
file size 小于 configuration.putThreshold 时采用表单上传 表单上传会占用 inputStream size 大小内存 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传
- Parameters:
filePath
- 上传的文件路径【必须】key
- 上传文件保存的文件名【可选】token
- 上传凭证【必须】params
- 自定义参数【可选】 自定义文件 metadata 信息,key 需要增加前缀 x-qn-meta- :如 params.put("x-qn-meta-key", "foo") 用户自定义变量,key 需要增加前缀 x: :如 params.put("x:foo", "foo")mime
- 指定文件mimetype【可选】checkCrc
- 是否验证crc32【可选】- Returns:
- Response
- Throws:
QiniuException
- 异常
-
put
public Response put(java.io.File file, java.lang.String key, java.lang.String token) throws QiniuException
上传文件file size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 分片上传:支持分片上传 v1/v2,支持并发,支持断点续传
file size 小于 configuration.putThreshold 时采用表单上传 表单上传会占用 inputStream size 大小内存 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传
- Parameters:
file
- 上传的文件对象【必须】key
- 上传文件保存的文件名【可选】token
- 上传凭证【必须】- Returns:
- Response
- Throws:
QiniuException
- 异常
-
put
public Response put(java.io.File file, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc) throws QiniuException
上传文件 * file size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 分片上传:支持分片上传 v1/v2,支持并发,支持断点续传file size 小于 configuration.putThreshold 时采用表单上传 表单上传会占用 inputStream size 大小内存 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传
- Parameters:
file
- 上传的文件对象【必须】key
- 上传文件保存的文件名【可选】token
- 上传凭证【必须】params
- 用户自定义信息【可选】mime
- 指定文件mimetype【可选】checkCrc
- 是否验证crc32【可选】- Returns:
- Response
- Throws:
QiniuException
- 异常
-
asyncPut
public void asyncPut(byte[] data, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime, boolean checkCrc, UpCompletionHandler handler) throws java.io.IOException
异步上传数据,表单上传不支持分片上传 v1/v2,不支持并发,不支持断点续传
- Parameters:
data
- 上传的数据【必须】key
- 上传数据保存的文件名token
- 上传凭证【必须】params
- 自定义参数【可选】 自定义文件 metadata 信息,key 需要增加前缀 x-qn-meta- :如 params.put("x-qn-meta-key", "foo") 用户自定义变量,key 需要增加前缀 x: :如 params.put("x:foo", "foo")mime
- 指定文件mimetype【可选】checkCrc
- 是否验证crc32【可选】handler
- 上传完成的回调函数【必须】- Throws:
QiniuException
- 上传异常java.io.IOException
-
put
public Response put(java.io.InputStream stream, java.lang.String key, java.lang.String token, StringMap params, java.lang.String mime) throws QiniuException
流式上传,通常情况建议文件上传,文件上传可以使用持久化的断点记录。支持分片上传 v1/v2,支持并发 不支持断点续传
inputStream size 大于 configuration.putThreshold 时采用分片上传 分片上传时,每个上传操作会占用 blockSize 大小内存,blockSize 也即分片大小, 在分片 v1 中 blockSize 为 4M; 分片 v2 可自定义 blockSize,定义方式为:Configuration.resumableUploadAPIV2BlockSize,范围为:1M ~ 1GB,分片 v2 需要注意每个文件最大分片数量为 10000; 当采用并发分片时,占用内存大小和当时启用并发任务数量有关,即:blockSize * 并发数量, 并发任务数量配置方式:Configuration.resumableUploadMaxConcurrentTaskCount 流式分片上传:支持分片上传 v1/v2,支持并发,不支持断点续传
inputStream size 小于 configuration.putThreshold 时采用表单上传 表单上传会占用 inputStream size 大小内存 表单上传:不支持分片上传 v1/v2,不支持并发,不支持断点续传
- Parameters:
stream
- 文件流【必须】key
- 上传文件保存的文件名【可选】token
- 上传凭证【必须】params
- 自定义参数【可选】 自定义文件 metadata 信息,key 需要增加前缀 x-qn-meta- :如 params.put("x-qn-meta-key", "foo") 用户自定义变量,key 需要增加前缀 x: :如 params.put("x:foo", "foo")mime
- 指定文件mimetype【可选】- Returns:
- Response
- Throws:
QiniuException
- 上传异常
-
-