搭建Tornado Https服务器之七牛云存储的使用(13)

       上一章节我们谈到了Tornado文件的上传和下载,那么对于我们来说服务器上传和下载小文件还行,遇到大文件基本就得放弃,租的服务器没有那么大的带宽和内存,因此一般都会借助第三方的存储,我用的是七牛云,免费的10G内存和不限制下载次数,非常适合学习使用。本章节记录python生成上传密钥,前端直接上传文件到七牛云,直接从七牛云下载文件,不经过自己的服务器。

一、去七牛云开通对象存储和创建bucket也就是存储空间名称。

两点需要注意,一个是访问控制,设置公开,这样用外链下载的时候无需去设置密钥,不然很麻烦,我个人认为如果你不是机密文件没必要验证,为了安全你也可以加密嘛,这样别人就猜不到你的文件名称了;另一个是空间名称,很重要

二、文件上传

这里我们需要获取上传的token,否则是非法的访问,是没办法上传的。

1、查看自己的ak,sk,这两个是用来生成token的

 2、查看自己的空间所在地,从而确定发送地址,前端发送输入客户端

 3、上前端代码,我们等会来测试一下,我的是华东区,客户端

<html>

<head>
<title></title>
</head>

<body>

<form method="post" action="http://upload.qiniu.com/" enctype="multipart/form-data">
	key(filename):<input name="key" type="text"  value=""><br>
	token:<input name="token" type="text" value=""> <br>
	<input name="file"type="file" />
	<input type="submit" />
</form>
</body>

</html>

 表单上传,传三个参数 一个是key 也就是文件名称;一个是token,一个是文件

4、python生成token的代码

from qiniu import Auth as qiniuAuth

# 得到七牛云的上传token ,需要传入key也就是文件名称   
def get_qiniu_up_token(key):
    # 七牛云密钥,写你自己的哦
    access_key = 'xxxxxxxxxxxx'
    secret_key = 'xxxxxxxxxxxx'
    #构建鉴权对象
    q = qiniuAuth(access_key, secret_key)
    # officeat 就是空间名称 3600就是有效时间
    token = q.upload_token('officeat', key, 3600)
    return token
# 假设我的key是 22.jpg,等下上传文件的时候key也得是这个否则报错
print(get_qiniu_up_token('22.jpg'))

5、测试一下,生成的token

启动html然后填入数据

这是返回的数据

 

我们看看七牛云,已经上传成功

 

 三、下载文件

我们在上传文件的时候是返回一个hash和key那个key配上外链域名即可下载,重要说明:这个空间是开放的这个我在之前就说过,否则你得申请下载权限,比较麻烦

1、找到我们的下载域名,七牛云免费给了一个 但30天之后就重新生成域名,但是还是免费的

2、下载文件,谷歌浏览器会将图片直接打开,因此会出现这样的现象。

http://q4jyy5i7v.bkt.clouddn.com/22.jpg

 

3、问题来了 你有没有发现如果别人知道你的外链域名,而你的文件名也就是key很规范的话,别人是可以猜到你的文件路径的,因此建议加上时间戳或者加密,别人很难猜解,真实文件名,建立表格保存即可。 之后大家就可以在tornado项目中添加这个功能了,写路由嘛。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖人称王某人的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值