Coder Social home page Coder Social logo

android-sdk's Introduction

UPYUN Android SDK

Build Status Download

UPYUN Android SDK, 集成:

使用说明:

1.SDK 依赖 okhttp

2.SDK 已经上传 Jcenter,Android Studio 的用户可以直接在 gradle 中添加一条 dependencies:

implementation 'com.upyun:upyun-android-sdk:2.1.4'

3.DEMO 示例在 app module 下的 MainActivity

参数设置

UpConfig 中可以对 SDK 的一些参数进行配置。

  • BLOCK_SIZE 单个分块大小
  • CONCURRENCY 上传线程并发数量
  • EXPIRATION 默认过期时间偏移量(秒)
  • FORM_HOST 表单上传 HOST
  • RETRY_TIME 失败重传次数
  • CONNECT_TIMEOUT 连接超时(秒)
  • READ_TIMEOUT 读超时(秒)
  • WRITE_TIMEOUT 写超时(秒)

上传接口

表单上传 (新)

//表单上传(本地签名方式)
UploadEngine.getInstance().formUpload(temp, paramsMap, OPERATER, UpYunUtils.md5(PASSWORD), completeListener, progressListener);
//表单上传(服务器签名方式)
UploadEngine.getInstance().formUpload(temp, policy, OPERATER, signature, completeListener, progressListener);

参数说明:

  • temp 上传文件
  • paramsMap 参数键值对
  • OPERATER 操作员
  • PASSWORD 操作员密码(MD5后传入)
  • completeListener 结束回调(回调到 UI 线程,不可为 NULL)
  • progressListener 进度条回调(回调到 UI 线程,可为 NULL)
  • policy 从服务器获取的 policy(生成规则见官网文档
  • signature 从服务器获取的 signature(生成规则见官网文档 注:Authorization = UPYUN 操作员:signature)

串行式断点续传

//初始化断点续传
SerialUploader serialUploader = new SerialUploader(SPACE,OPERATER,UpYunUtils.md5(PASSWORD));

//设置 MD5 校验(服务端签名方式不可校验 MD5)
serialUploader.setCheckMD5(true);

//设置进度监听
serialUploader.setOnProgressListener(new ResumeUploader.OnProgressListener() {
      @Override
      public void onProgress(int index, int total) {
      }
});

//暂停
serialUploader.pause()

//开始断点续传,可用方法 1 或方法 2
//方法 1
serialUploader.upload(final File file, final String uploadPath, final Map<String, String> restParams, final UpCompleteListener completeListener)

//方法 2
serialUploader.upload(final File file, final String uploadPath, final Map<String, String> restParams, final Map<String, Object> processParam, final UpCompleteListener completeListener)

并行式断点续传

//初始化断点续传
ParallelUploader parallelUploader = new ParallelUploader(SPACE,OPERATER,UpYunUtils.md5(PASSWORD));

//初始化断点续传 (服务端签名可用)
ParallelUploader parallelUploader = new ParallelUploader();

//设置 MD5 校验(服务端签名方式不可校验 MD5)
parallelUploader(true);

//设置进度监听
parallelUploader(new ResumeUploader.OnProgressListener() {
      @Override
      public void onProgress(int index, int total) {
      }
});

//暂停
parallelUploader.pause()

//开始断点续传,可用方法 1 或方法 2
//方法 1
parallelUploader(final File file, final String uploadPath, final Map<String, String> restParams, final UpCompleteListener completeListener)

//方法 2
parallelUploader(final File file, final String uploadPath, final Map<String, String> restParams, final Map<String, Object> processParam, final UpCompleteListener completeListener)

//服务端签名方式
parallelUploader.upload(final File file, final String uri, final String date, final String signature, final Map<String, String> restParams, final UpCompleteListener completeListener)

参数说明:

  • file 上传文件
  • uploadPath 上传路径
  • restParams rest api 上传预处理参数可为空 (详见文档
  • processParam 异步音视频处理参数 (详见文档
  • completeListener 结束回调(回调到 UI 线程,不可为 NULL)

服务器签名参数:

  • uri 请求路径(带空间名)
  • date 请求日期时间
  • signature 服务端签名(注:Authorization = UPYUN 操作员:signature)

测试

./gradlew connectedAndroidTest

错误码说明

请参照 API 错误码表

兼容性

Android 2.3(API10) 以上环境

android-sdk's People

Contributors

jasl avatar yejingx avatar yemingm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-sdk's Issues

视频上传时,如果视频是中文标题会闪退

这是okhttp3的问题,你们封装的jar包里面使用了okhttp,你们什么时候修改下?Unexpected char 0x54c8 at 34 in Content-Disposition value: form-data; name="file"; filename="哈哈哈.mp4"\n\tat okhttp3.Headers.checkValue(Headers.java:272)\n\tat okhttp3.Headers.of(Headers.java:224)\n\tat okhttp3.MultipartBody$Part.createFormData(MultipartBody.java:259)\n\tat okhttp3.MultipartBody$Builder.addFormDataPart(MultipartBody.java:324)\n\tat com.upyun.library.common.UploadClient.fromUpLoad2(UploadClient.java:39)

header name is not work in okhttp3 3.6.0

java.lang.IllegalArgumentException
Unexpected char 0x20 at 19 in header name: x-upyun-api-version
com.upyun.library.common.UploadClient.fromUpLoad(UploadClient.java:45)
看了一下okhttp3 的 change log
square/okhttp@731a262
这里说明header的name末尾带空格也丢异常了。

小部分机型会报授权过期

{"code":403,"url":"...路径保密.../2016-06-10-10-39-27-1465526255493.jpg","time":1465526370,"message":"authorization has expired","no-sign":"837b74f21bdc9a890eda65e141554373"}

上传图片偶尔会oom

Failed to allocate a 8208 byte allocation with 2952 free bytes and 2952B until OOM, max allowed footprint 402653184, growth limit 402653184
com.upyun.library.common.UploadClient.java.lang.String fromUpLoad2(java.io.File,java.lang.String,java.lang.String,java.lang.String,java.lang.String,com.upyun.library.listener.UpProgressListener)(UploadClient.java:52)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.