首页 > 代码库 > 七牛云存储SDK扩展
七牛云存储SDK扩展
前些天在使用七牛云存储进行数据上传的过程中,发现七牛提供的SDK仅支持以File的形式进行上传,不支持以InputStream的形式进行上传,特对其进行了相应的扩展,具体扩展如下:
import java.io.InputStream; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.InputStreamBody; import org.apache.http.entity.mime.content.StringBody; import com.qiniu.api.config.Config; import com.qiniu.api.io.PutExtra; import com.qiniu.api.io.PutRet; import com.qiniu.api.net.CallRet; import com.qiniu.api.net.Client; public class QiNiuIoApi { public static final String UNDEFINED_KEY = "?"; public static final int NO_CRC32 = 0; public static final int AUTO_CRC32 = 1; public static final int WITH_CRC32 = 2; public static PutRet put(String uptoken, String key, InputStream input, PutExtra extra) { if (input == null) { return new PutRet(new CallRet(400, new Exception("InputStream can not be null."))); } if (key == null) { key = UNDEFINED_KEY; } MultipartEntity requestEntity = new MultipartEntity(); try { requestEntity.addPart("token", new StringBody(uptoken)); InputStreamBody fileBody = new InputStreamBody(input, key); requestEntity.addPart("file", fileBody); requestEntity.addPart("key", new StringBody(key)); if (extra.checkCrc != NO_CRC32) { if (extra.crc32 == 0) { return new PutRet(new CallRet(400, new Exception("no crc32 specified!"))); } requestEntity.addPart("crc32", new StringBody(extra.crc32 + "")); } } catch (Exception e) { e.printStackTrace(); return new PutRet(new CallRet(400, e)); } String url = Config.UP_HOST; CallRet ret = new Client().callWithMultiPart(url, requestEntity); return new PutRet(ret); } }
本文出自 “Frank” 博客,请务必保留此出处http://zengfanhong.blog.51cto.com/8894077/1580034
七牛云存储SDK扩展
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。