小文件的存储

Posted zengsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小文件的存储相关的知识,希望对你有一定的参考价值。

对于小文件的存储,指小于16M的文件

import bson
bson.binary.Binary()
功能: 将bytes格式字符串装换为mongodb的二进制存储格式

将文件存储到数据库中:

#小文件存储方案
#直接装换为二进程格式插入到数据库

from pymongo import MongoClient
import bson.binary

conn = MongoClient("localhost", 27017)
db = conn.image

myset = db.python

#存储文件
f = open("mongo1.py", "rb")

#将图片内容转换为可存储的二进制格式
content = bson.binary.Binary(f.read())

#插入到文档
myset.insert({"filename":"mongo1.py","data":content})

conn.close()

存放到数据库中的格式是:{ "_id" : ObjectId("5ba4bc1f69d72e1bc400161f"), "data" : BinData(0,"ZnJvbSBwe..........NlKCkK"), "filename" : "mongo1.py" }

从数据库中取出文件:

from pymongo import MongoClient
#连接数据库对象
conn = MongoClient("localhost", 27017)
#创建数据库对象
db = conn.image

#创建集合对象
myset = db.python

#提取文档,由于find_one返回之后的是一个字典
dic = myset.find_one({"filename":"mongo1.py"})
with open("mongo5", "wb") as f:
    #通过字典的键值来获取数据并写到新的文件中
    f.write(dic["data"])

conn.close()

 



以上是关于小文件的存储的主要内容,如果未能解决你的问题,请参考以下文章

如何将 r ggplot 图存储为 html 代码片段

想让你的Mac桌面清爽整洁?试试Mac临时文件存储小助手Yoink

Android课程---Android Studio使用小技巧:提取方法代码片段

android小知识点代码片段

微信小程序代码片段分享

小程序各种功能代码片段整理---持续更新