介绍
小编给大家分享一下mongodb存储图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家学习,希望大家阅读完这篇文章后大所收获、下面让我们一起去学习方法吧!
<强>一、GridFS 强>
GridFS将图片数据与图片属性数据分开保存,用块来保存图片数据,文件保存属性数据,一个图片文件可能对应多个块,每个块的内存大小固定(16美元),若图片数据大于块,则分为多个块保存,用同一个ObjectID关联,下载时自动将多个块合并为图片数据。
上传
得到pymongo import MongoClient 得到gridfs import * import 请求 时间=client MongoClient(& # 39; 127.0.0.1 # 39;,, 27017), #连接mongodb 时间=db client.photo #连接对应数据库 # db.authenticate (“username",“passowd") 时间=fs GridFS (db,收集=癷mages"), #连接 时间=data requests.get (dic (“photo_url"),超时=10).content #,确认数据库中不存在此图片之后再保存 if not  fs.find_one ({“photo_url": dic [“photo_url"]}): ,,,fs.put(数据,,* * dic) #,上传成功后,照片数据库下出现两个集合,分别为:images.files,图片。chunks12345678910111213
下载
得到pymongo import MongoClient 得到gridfs import * 时间=client MongoClient(& # 39; 127.0.0.1 # 39;,, 27017), #连接mongodb 时间=db client.photo #连接对应数据库 # db.authenticate (“username",“passowd") 时间=fs GridFS (db,收集=癷mages"), #连接 num =1 for grid_out  fs.find拷贝(no_cursor_timeout=True): ,,,data =, grid_out.read(), #,获取图片数据 ,,,outf =,开放(& # 39;/home/% d.jpg& # 39; % num, & # 39; wb # 39;) ,,,outf.write(数据),#存储图片 ,,,outf.close () ,,,if num % 100000,==0 ,,,,,,,metadata_file =,开放(“/home/元数据% d.csv" % (num/100000 + 1),,“ab") ,,,,,,,csv_writer =, csv.writer (metadata_file分隔符=& # 39;\ t # 39;) ,,,row =, [grid_out.photo_title.encode (& # 39; utf - 8 # 39;),, grid_out.uploadDate,, grid_out.upload_date,, \ ,,,,,,,,,grid_out.longitude grid_out.latitude, grid_out.width,, grid_out.height, \ ,,,,,,,grid_out.owner_name.encode (& # 39; utf - 8 # 39;),, grid_out.photo_id,, grid_out._id, grid_out.photo_url] ,,,csv_writer.writerow(行)12345678910111213141516171819
<强>二,bson二进制强>
这种方法将图片数据作为键值对放入字典与属性数据作为整体存入数据库中。
上传代码如下:
得到bson import 二进制 得到pymongo import  MongoClient 时间=client MongoClient(& # 39; 127.0.0.1 # 39;,, 27017), #连接mongodb 时间=db client.photo #连接对应数据库 image_collection =db.images 时间=data requests.get (dic (“photo_url"),超时=10).content #,确认数据库中不存在此图片之后再保存 if not  image_collection.find_one ({“photo_url": dic [“photo_url"]}) ,,,迪拜国际资本(“imagecontent"),=, binary.Binary(数据) ,,,image_collection.insert (dic) 1234567891011
以上是mongodb存储图片的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!