redis web后台存取二进制文件
Posted xunhanliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis web后台存取二进制文件相关的知识,希望对你有一定的参考价值。
简要代码(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后台存取二进制文件的主要内容,如果未能解决你的问题,请参考以下文章