maven
引用 网上maven服务器 以及最新版的maven依赖
<repositories> <repository> <id>public</id> <!-- <url>http://192.168.2.115:8081/nexus/content/groups/public/</url> --> <url>https://repo.maven.apache.org/maven2/</url> </repository>
</repositories>
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.1.0</version> </dependency>
import java.io.IOException; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.UploadManager; import com.qiniu.util.Auth; public class QiniuUtil { //设置好账号的ACCESS_KEY和SECRET_KEY String ACCESS_KEY = "Bq**********************lSc_pZUZ_"; //这两个登录七牛 账号里面可以找到 String SECRET_KEY = "Dyag******************"; //要上传的空间 String bucketname = "auto***file"; //对应要上传到七牛上 你的那个路径(自己建文件夹 注意设置公开) //上传到七牛后保存的文件名 String key = "daimo6.png"; //上传文件的路径 String FilePath = "d:\\daimao5.png"; //本地要上传文件路径 //密钥配置 Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); //创建上传对象 UploadManager uploadManager = new UploadManager(); //简单上传,使用默认策略,只需要设置上传的空间名就可以了 public String getUpToken(){ return auth.uploadToken(bucketname); } //普通上传 public void upload() throws IOException{ try { //调用put方法上传 Response res = uploadManager.put(FilePath, key, getUpToken()); //打印返回的信息 System.out.println(res.bodyString()); } catch (QiniuException e) { Response r = e.response; // 请求失败时打印的异常的信息 System.out.println(r.toString()); try { //响应的文本信息 System.out.println(r.bodyString()); } catch (QiniuException e1) { //ignore } } } public static void main(String args[]) throws IOException{ new QiniuUtil().upload(); } }
@RequestMapping(value = "list", method = RequestMethod.GET) public ModelAndView list(SearchVO vo, Integer sortType , HttpServletRequest request,@Language String language) throws Exception { new QiniuUtil().upload();
}
每个账户 对应一个 外链的前缀 都是一样的 比如我的
http://7xuac******n.com/ 看下你上传的文件可以发现这个规律,然后后面加上你传的文件名字就能对应你上传文件的外网地址了
如果文件有空格 和 中文名称 空格可以替换掉"" 中文名称文件地址略微麻烦点, 我还在想,不知道七牛提供了api查询某个文件的网址不
另外
这个函数修改下 就是 覆盖上传 替换掉原来文件
public String getUpToken(){ // return auth.uploadToken(bucketname); //<bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。 //如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1。 //第三个参数是token的过期时间 return auth.uploadToken(bucketname, key, 3600, new StringMap().put("insertOnly", 0 )); }
文件外链的格式为
http://domain/key
domain你可以登录https://portal.qiniu.com
然后在 空间设置 -> 域名管理 中查看
key 为空间中的文件名