91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb存儲圖片的方法

發布時間:2020-08-04 14:32:11 來源:億速云 閱讀:501 作者:清晨 欄目:編程語言

小編給大家分享一下mongodb存儲圖片的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

一、GridFS

GridFS將圖片數據與圖片屬性數據分開保存,用chunks來保存圖片數據,files保存屬性數據,一個圖片file可能對應多個chunks,每個chunk的內存大小固定(16M),若圖片數據大于chunk,則分為多個chunk保存,用同一個ObjectID關聯,下載時自動將多個chunk合并為圖片數據。

上傳

from pymongo import MongoClient
from gridfs import *
import requests
client = MongoClient('127.0.0.1', 27017) #連接mongodb
db = client.photo #連接對應數據庫
#db.authenticate("username","passowd")
fs = GridFS(db, collection="images") #連接collection
data = requests.get(dic["photo_url"], timeout=10).content
# 確認數據庫中不存在此圖片之后再保存
if not fs.find_one({"photo_url":dic["photo_url"]}):
    fs.put(data, **dic)
# 上傳成功后,photo數據庫下出現兩個collection,分別為: images.files, images.chunks12345678910111213

下載

from pymongo import MongoClient
from gridfs import *
client = MongoClient('127.0.0.1', 27017) #連接mongodb
db = client.photo #連接對應數據庫
#db.authenticate("username","passowd")
fs = GridFS(db, collection="images") #連接collection
num = 1
for grid_out in fs.find(no_cursor_timeout=True):
    data = grid_out.read() # 獲取圖片數據
    outf = open('/home/%d.jpg'%num,'wb')
    outf.write(data) #存儲圖片
    outf.close()
    if num%100000 == 0
        metadata_file = open("/home/metadata%d.csv"%(num/100000+1), "ab")
        csv_writer = csv.writer(metadata_file,delimiter='\t')
    row = [grid_out.photo_title.encode('utf-8'), grid_out.uploadDate, grid_out.upload_date, \
        grid_out.longitude, grid_out.latitude, grid_out.width, grid_out.height,\
        grid_out.owner_name.encode('utf-8'), grid_out.photo_id, grid_out._id, grid_out.photo_url]
    csv_writer.writerow(row)12345678910111213141516171819

二、bson二進制

這種方法將圖片數據作為鍵值對放入字典與屬性數據作為整體存入數據庫中。

上傳代碼如下:

from bson import binary
from pymongo import MongoClient
client = MongoClient('127.0.0.1', 27017) #連接mongodb
db = client.photo #連接對應數據庫
image_collection = db.images
data = requests.get(dic["photo_url"], timeout=10).content
# 確認數據庫中不存在此圖片之后再保存
if not image_collection.find_one({"photo_url":dic["photo_url"]})
    dic["imagecontent"] = binary.Binary(data)
    image_collection.insert(dic)1234567891011

以上是mongodb存儲圖片的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鞍山市| 汉沽区| 新营市| 连城县| 云梦县| 邵阳市| 肃宁县| 白水县| 依兰县| 尉氏县| 根河市| 丽江市| 定远县| 大关县| 西和县| 滦平县| 赫章县| 图木舒克市| 曲沃县| 永州市| 信宜市| 汕尾市| 靖西县| 郁南县| 梧州市| 高碑店市| 四子王旗| 延吉市| 高安市| 云林县| 沂水县| 新密市| 石家庄市| 罗甸县| 确山县| 大安市| 大城县| 湛江市| 宁河县| 鹰潭市| 日喀则市|