解决七牛云图片url上传问题的方法:
七牛云图片url上传
项目中用到要把非自家源的图片转换为自家源的图片的问题,想通过七牛云解决,对着七牛云开发文档看了很久也没啥眉目,
最后因为公司与七牛有合作,所以找到七牛的大佬才得以解决,下面是解决方案:
首先找一个项目引入七牛sdk 链接:https://developer.qiniu.com/kodo/sdk/1239/java
然后 将下面代码复制到 main方法中,修改 ACCESS_KEY SECRET_KEY bucketname 为自己的
即可运行,控制台输出的就是图片名称(这名称就是key的值 我是自定义的当前时间加上三位随机数,前面是你的域名)
//参考api文档https://developer.qiniu.com/kodo/api/4097/asynch-fetch //设置好账号的ACCESS_KEY和SECRET_KEY String oldUrl ="http://r3.ykimg.com/050C0000525611A967583907F10CA01F"; String[] newUrl =oldUrl.split(";"); System.out.println(newUrl.length); for (int i=0;i Random random =new Random(); StringACCESS_KEY="your accessKey"; StringSECRET_KEY="your secretKey"; //要上传的空间 String bucketname ="your bucketName"; Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); // 构造post请求body Gson gson =new Gson(); Map m =new HashMap(); m.put("url", newUrl[i]); m.put("bucket", bucketname); m.put("key", +System.currentTimeMillis()+random.nextInt(100)+".jpg"); System.out.println("https://域名/"+m.get("key")); StringparaR= gson.toJson(m); byte[] bodyByte = paraR.getBytes(); String url ="http://api-z0.qiniu.com/sisyphus/fetch"; String accessToken = (String) auth.authorizationV2(url, "POST", bodyByte, "application/json") .get("Authorization"); Client client =new Client(); StringMap headers =new StringMap(); headers.put("Authorization", accessToken); try { com.qiniu.http.Response resp = client.post(url, bodyByte, headers, Client.JsonMime); }catch (Exception e) { throw new Exception(e.getMessage()); } }
更多相关技术知识,请访问PHP中文网!