码迷,mamicode.com
首页 > Web开发 > 详细

redis web后台存取二进制文件

时间:2020-02-11 10:04:07      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:idt   mic   open   一个   pen   代码   pass   临时   async   

简要代码(aioredis):

@post(/shop/store_file)
async def store_file(request,*,file,fileName):
    ‘‘‘
    直接进行二进制存储就行
    ‘‘‘
    await redis.execute("HSET", admin_doc,fileName, file.file.read())
    return 
@post(/shop/get_file)
async def get_file(request,*,fileName):
    return await redis.execute("HGET", admin_doc,fileName)

平台:python3 。测试库:aioredis

使用redis.py一样,这里是使用HSET/HGET进行存取的,使用GET/SET也行。

注意:如果代码中报UnicodeDecodeError错误,可能是你连接数据库的时候指定了encode.

解决方案参考 https://blog.csdn.net/weixin_34096182/article/details/92490558 

1、不指定连接的encode。但是当你在同一个项目中存取正常的字符串时,需要手动对查询结果进行解码。

2、修改aioredis中的 connection.py。把L236改成pass。就是对解码错误不进行处理。

postman 测试(链接相应修改,看参数即可)

技术图片

 注意:参数file,后台收houhou到前台传的文件后,会临时把此文件放入后台的file.file.name文件中。file.file好像就是类似open()出来的对象,可以通过file.file.open()进行文件读取操作。

 

redis web后台存取二进制文件

标签:idt   mic   open   一个   pen   代码   pass   临时   async   

原文地址:https://www.cnblogs.com/xunhanliu/p/12293703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!