事前准备
后端配置
导入七牛云依赖
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>happy-dns-java</artifactId>
<version>0.1.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.5.0, 7.5.99]</version>
</dependency>
配置获取token接口
package cn.zzzyuan.controller;
import com.qiniu.util.Auth;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping(value = "/qiniu")
public class QiniuController {
@RequestMapping(value = "/getToken")
public @ResponseBody
Map<String, String> getToken() throws IOException {
String accessKey = "*******";
String secretKey = "***";
String bucket = 空间名";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
Map<String, String> map = new HashMap<String, String>();
map.put("uptoken", upToken);
return map;
}
}
文件配置
var config = {
qiniuRegion: 'SCN',
qiniuBucketURLPrefix: 'http://你七牛云空间绑定的域名',
qiniuUploadToken: '',
qiniuUploadTokenURL: 'http://localhost:8081/api/qiniu/getToken 你七牛云后端获取token的接口url',
qiniuUploadTokenFunction: function () {
},
qiniuShouldUseQiniuFileName: false
}
使用
const qiniuUploader = require("../../common/util/qiniuUploader.js");
function initQiniu() {
var options = {
region: 'SCN',
uptoken: '',
uptokenURL: 'http://192.168.31.181:8081/api/qiniu/getToken',
uptokenFunc: function () {
return qiniuUploadToken;
},
domain: 'http://**',
// 微信自动生成的 filename较长,导致fileURL较长。推荐使用{
qiniuShouldUseQiniuFileName: true} + "通过fileURL下载文件时,自定义下载名" 的组合方式。
// 自定义上传key 需要两个条件:1. 此处shouldUseQiniuFileName值为false。 2. 通过修改qiniuUploader.upload方法传入的options参数,可以进行自定义key。(请不要直接在sdk中修改options参数,修改方法请见demo的index.js)
// 通过fileURL下载文件时,文件自定义下载名,请参考:七牛云“对象存储 > 产品手册 > 下载资源 > 下载设置 > 自定义资源下载名”(https://developer.qiniu.com/kodo/manual/1659/download-setting)。本sdk在README.md的"常见问题"板块中,有"通过fileURL下载文件时,自定义下载名"使用样例。
shouldUseQiniuFileName: false
};
// 将七牛云相关配置初始化进本sdk
qiniuUploader.init(options);
}
export function uploadImg(path){
// 向七牛云上传
qiniuUploader.upload(path, (res) => {
}, (error) => {
console.error('error: ' + JSON.stringify(error));
},
null,
(progress) => {
console.log('上传进度', progress.progress);
}, cancelTask => {
}
);
}