我们在做网站开发时,有时需要用户上传文件,比如说最常见的照片。此时如果我们将文件直接存储在数据库中,一来会使得数据文件过多,二来用户在访问文件时会加剧数据库的负担。为此,我们可以将数据文件存放在网上,在访问文件时直接访问网上文件的链接即可。
这里我们采用七牛云来存储文件,我们拿照片类文件来举例。
1、注册七牛云账号
作为开发者的话,我们是需要注册成为开发者账号的。七牛的官网链接为: https://www.qiniu.com/
2、开发环境
我们以Python为例来说明下如何将照片上传到七牛云上,并返回该照片的链接回来。
官方文档 : https://developer.qiniu.com/kodo/sdk/1242/python
首先安装七牛云包
pip install qiniu
然后获取开发者 Access Key 和 Secret Key。这两个key在注册后会在个人中心提供给我们的。
再然后需要建立一个bucket,也就是文件存储的仓库,我们需要的是它的bucket_name
以及我们的域名,这个域名如果不指定的话,七牛会给我们一个测试域名,我们暂时可以用这个测试域名:url
然后按照如下格式就可以了:
import qiniu
access_key = '*******************************'
secret_key = '*******************************'
url = '***************************'
bucket_name = '*******************'
q = qiniu.Auth(access_key, secret_key)
def qiniu_upload(key, localfile):
token = q.upload_token(bucket_name, key, 3600)
ret, info = qiniu.put_file(token, key, localfile)
if ret:
return '{0}{1}'.format(url, ret['key'])
else:
raise UploadError('上传失败,请重试')
key = '微信图片_20180408124226.jpg'
localfile = 'C:/Users/Administrator.SKY-20180408LJB/Desktop/微信图片_20180408124226.jpg'
res = qiniu_upload(key, localfile)
print(res)
我们只需要提供文件名,文件路径。便可以将其上传到七牛云上,并返回给我们一个可以访问该文件的url链接。
当然,也可以将其封装成一个API接口,方便调用。