想要用七牛云对象储存,首先,你需要有一个七牛云账号。注册好账号之后点击右上角的控制台,选择对象存储,开心的创建应用…..???什么!居然需要实名认证!告辞…
那么实名认证之后,在命令行输入:
导入七牛云,然后创建一个实例
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 = 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,复制下来用就行。