Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

想要用七牛云对象储存,首先,你需要有一个七牛云账号。注册好账号之后点击右上角的控制台,选择对象存储,开心的创建应用…..???什么!居然需要实名认证!告辞…

那么实名认证之后,在命令行输入:

1
pip install qiniu

导入七牛云,然后创建一个实例

1
2
3
4
5
6
7
8
9
10
from qiniu import Auth


class Qiniu(APIView):
def get(self, request):
# 声明认证对象
q = Auth('你的AK', "你的SK")
# 获取token
token = q.upload_token('你创建的应用名')
return Response({'token': token})

这里需要说明一下。想要查看你的AK和SK的话,需要将鼠标悬停在右上角那个应该是头像的地方,然后网页会自动弹出一个可供选择的列表,选择密钥管理,就可以看到你的AK和SK啦,不过如果想要复制SK的话,需要点击“显示”,不然复制不了。

这个类是用来获取token的,由于token每隔几分钟就会更新一次(好像是以分钟为单位的,不过确定的是它是动态的),所以前端每次发送文件都从后台这里拿token,然后带着token传递文件给七牛云。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<table>
<tr>
<td>
用户头像:
<Avatar :src="src" wifth='150' fit="fill"></Avatar>
</td>
<td>
<input type="file" @change="submit">
</td>
</tr>
<tr>
<td>
七牛云上传
</td>
<td>
<input type="file" @change="upload_qiniu">
</td>
</tr>
</table>

上面的是页面代码,下面的为函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
get_token:function(){
this.axios.get('http://127.0.0.1:8000/qiniu/').then(res=>{
this.token = res.data.token;
})
},
upload_qiniu:function(e){
var file = e.target.files[0];
let param = new FormData;
param.append('file', file, file.name);
param.append('token', this.token);
const axios_qiniu = this.axios.create({withCredentials: false});
axios_qiniu({
url: 'http://up-z2.qiniu.com',
method: 'post',
data: param,
timeout: 40000
}).then(res=>{
console.log(res.data);
})
}

timeout是为了防止传输超时,url是要对应你创建的应用的地址的,比如你创建的应用在华南,那么只能用华南的,如果创建的在华北,那么只能用华北的,这个可以在官网查,或者当你传错url的时候会返回给你一个你应当传的url,复制下来用就行。

评论



愿火焰指引你