Class 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)
      上传文件
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UploadManager

        public UploadManager​(Configuration config)
        构建一个非断点续传的上传对象
        Parameters:
        config - 配置类对象【必须】
      • UploadManager

        public UploadManager​(Configuration config,
                             Recorder recorder)
        构建一个支持断点续传的上传对象。只在文件采用分片上传时才会有效。 分块上传中,将每一块上传的记录保存下来。上传中断后可在上一次断点记录基础上上传剩余部分。 对于不同的文件上传需要支持断点续传的情况,请定义不同的UploadManager对象,而不要共享。
        Parameters:
        config - 配置类对象【必须】
        recorder - 断点记录对象【可选】
      • UploadManager

        public UploadManager​(Client client,
                             Recorder recorder)
        构建一个支持断点续传的上传对象。只在文件采用分片上传时才会有效。 分块上传中,将每一块上传的记录保存下来。上传中断后可在上一次断点记录基础上上传剩余部分。 对于不同的文件上传需要支持断点续传的情况,请定义不同的UploadManager对象,而不要共享。
        Parameters:
        client - 上传 client【必须】
        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 - 上传异常