发表于: 2017-09-17 23:42:59

1 733


【今日完成】

今天终于把图片上传搞定了,多亏了师兄的小课堂:https://v.qq.com/x/page/m052917m1ia.html

其实挺简单的,就是一开始被官方的文档搞迷糊了,不知道到底该怎么做图片上传。


首先把图片上传的代码展示一下:

public class QiNiuCloud {
//构造一个带指定Zone对象的配置类
   @Test
   public void sendImage(){
Configuration cfg = new Configuration(Zone.zone0());
   //...其他参数参考类注释
   UploadManager uploadManager = new UploadManager(cfg);
   //...生成上传凭证,然后准备上传
   String accessKey = "0Sm3oIW_H0YnU8YFKERyA1wuaGH2fgimTJOYl";
   String secretKey = "GX0sTeieEEkX0bchcJpB3UCdgvKAACYL-pMfI";
   String bucket = "bernkast";
   //如果是Windows情况下,格式是 D:\\qiniu\\test.png
   String localFilePath = "D:\\\\test.png";
   //默认不指定key的情况下,以文件内容的hash值作为文件名
   String key = null;
   Auth auth = Auth.create(accessKey, secretKey);
   String upToken = auth.uploadToken(bucket);
   try {
Response response = uploadManager.put(localFilePath, key, upToken);
       //解析上传成功的结果
       DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
       System.out.println(putRet.key);
       System.out.println(putRet.hash);
   } catch (QiniuException ex) {
Response r = ex.response;
       System.err.println(r.toString());
       try {
System.err.println(r.bodyString());
       } catch (QiniuException ex2) {
//ignore
       }
}
}
}


代码里最重要的就是

//...生成上传凭证,然后准备上传
   String accessKey = "0Sm3oIW_H0YnU8YFKERyA1wuaGH2fgimTJOYl";
   String secretKey = "GX0sTeieEEkX0bchcJpB3UCdgvKAACYL-pMfI";
   String bucket = "bernkast";
   //如果是Windows情况下,格式是 D:\\qiniu\\test.png
   String localFilePath = "D:\\\\test.png";

一个是秘钥(为了隐私安全我删了几个字符),一个是储存空间名字,还有一个是上传路径。


当然,光有这些还是不够的,官网和小课堂都没有把需要引入的Jar包列举出来,根据报红的地方,依次引入。

import com.qiniu.util.Auth;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.http.Response;
import com.qiniu.common.QiniuException;
import com.google.gson.*;
import com.qiniu.common.Zone;
import org.junit.Test;


引入完成后看似可以运行了,来试试。

测试通过,去七牛云看看。

可以看到,图片已经成功上传。


不过我图片名字是Test.png,在这里变成了一串无规律的字符。

可以看到程序运行打印的一串String,正是七牛云中图片的名字

仔细看代码,发现七牛云上传应该是一个Map。

只不过这里Key与Hash是相同的。


至此图片上传功能完成。



【今日收获】

借助小课堂,完成了图片上传七牛云的功能


【明日计划】

整理一下,开启任务八


【任务进度】

基本搞定了,无延期风险

http://task.ptteng.com/zentao/project-burn-268.html



返回列表 返回列表
评论

    分享到