日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux删除grid数据文件,MongoDB进阶系列(13)——GridFS大文件的添加、获取、查看、删除...

發布時間:2023/12/4 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux删除grid数据文件,MongoDB进阶系列(13)——GridFS大文件的添加、获取、查看、删除... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GridFS是一種在MongoDB中存儲大二進制文件的機制,使用GridFS的原因有以下幾種:

存儲巨大的文件,比如視頻、高清圖片等。

利用GridFS可以簡化需求。

GridFS會直接利用已經建立的復制或分片機制,故障恢復和擴展都很容易

GridFS可以避免用戶上傳內容的文件系統出現問題。

GridFS不產生磁盤碎片。

GridFS使用兩個表來存儲數據:

fiiles包含元數據對象(如文件的名稱、上傳的時間)

chunks包含其他一些相關信息的二進制塊

為了使度個GridF命名為一個單一的數據庫,文件和塊都有一個前綴,默認情況下,前綴是fs。

所以任何默認的GridFS存儲將包括命名空間fs.files和fs.chunks。(圖片可以命名為ps.files和ps.chunks,視頻可以命名為vs.files和vs.chunks)。

各種第三方語言可以更改其前綴。

本文是oschina的happyBKs的文章,請自己標明出處:http://my.oschina.net/u/1156339/blog/388156

使用GridFS mongofiles

mingofiles是從命令行操作GridFS的一種工具

三個命令:put(存儲) get(取得) list(列表)

例如:我們將“testfile”這個文件存儲到庫中,具體做法是 ./mongofiles put testfile

首先,我們嘗試壓縮歸檔一個文件。

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?list

[sudo]?password?for?neil:

connected?to:?127.0.0.1

[neil@neilhost?~]$?tar?zcf?mongodbBook.tar.gz?Downloads/MongoDB權威指南.pdf

[neil@neilhost?~]$?ll?mongodbBook.tar.gz

-rw-rw-r--.?1?neil?neil?203?3月??16?19:10?mongodbBook.tar.gz

下面我們將這個歸檔文件存儲到mongoDB中。默認存放到test數據庫中。

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?put?./mongodbBook.tar.gz

connected?to:?127.0.0.1

added?file:?{?_id:?ObjectId('5506bc01581b37b38b49fecd'),?filename:?"./mongodbBook.tar.gz",?chunkSize:?261120,?uploadDate:?new?Date(1426504705885),?md5:?"85c0c93f51ebe9c609ffe4f9da71c63e",?length:?203?}

done!

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?list

connected?to:?127.0.0.1

./mongodbBook.tar.gz203

[neil@neilhost?~]$

之后,我們進入mongodb客戶端查看test數據庫,發現里面多了兩個集合,一個是fs.files,查看之后發現里面記錄著上傳文件的以下像信息:文件名稱、上傳時間、md5碼、文件長度、大小等。

fs.chunks查看顯示二進制信息。

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongo

[sudo]?password?for?neil:

MongoDB?shell?version:?2.6.8

connecting?to:?test

>?show?tables

fs.chunks

fs.files

system.indexes

>

>

>?db.fs.files.find()

{?"_id"?:?ObjectId("5506bc01581b37b38b49fecd"),?"filename"?:?"./mongodbBook.tar.gz",?"chunkSize"?:?261120,?"uploadDate"?:?ISODate("2015-03-16T11:18:25.885Z"),?"md5"?:?"85c0c93f51ebe9c609ffe4f9da71c63e",?"length"?:?203?}

>?db.fs.chunks.find()

{?"_id"?:?ObjectId("5506bc011b359e376ad0011e"),?"files_id"?:?ObjectId("5506bc01581b37b38b49fecd"),?"n"?:?0,?"data"?:?BinData(0,"H4sIADm6BlUAA+3OvwsBcRjH8a+uZOE/kNuYuOO+btetMvkD1CHFnfzISgYDZqWU0d9g4w+x3W1mq7uUkmKgpN6v4Xnq+Tz1PJY7ctpuze7nyq7TdK2Sv5l6u4m/mHnLVbZrN8TntEDR0MKum/Kh30gp9LzUdFkIiwhSwzCFqn3h9lvD/qDWU1Xh1FvtV3vv8j+VmsdEfB+tCuV8iMSDwXF7qXQS5va+MTaV9SmZFpmf/QgAAAAAAAAAAAAAAAAAeHYFpzavuwAoAAA=")?}

>

這個文件不大,所以二進制信息很短。

[neil@neilhost?~]$?du?mongodbBook.tar.gz

4mongodbBook.tar.gz

接下來,我嘗試將mongodbBook.tar.gz的原文件刪除,然后從mongodb中獲取恢復。

這里用到的是mongofiles get命令。這里注意的是

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?list

connected?to:?127.0.0.1

./mongodbBook.tar.gz203

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?get?mongodbBook.tar.gz

connected?to:?127.0.0.1

ERROR:?file?not?found

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?get?./mongodbBook.tar.gz

connected?to:?127.0.0.1

done?write?to:?./mongodbBook.tar.gz

[neil@neilhost?~]$?ll

總用量?44

drwxr-xr-x.?2?neil?neil?4096?2月??13?18:36?Desktop

drwxr-xr-x.?3?neil?neil?4096?2月??13?21:35?Documents

drwxr-xr-x.?5?neil?neil?4096?3月??15?21:56?Downloads

-rw-r--r--.?1?root?root??203?3月??17?18:27?mongodbBook.tar.gz

drwxr-xr-x.?2?neil?neil?4096?2月??13?18:36?Music

drwxr-xr-x.?3?neil?neil?4096?3月??15?22:50?Pictures

這里需要注意的是,后面get的文件名稱需要指定路徑,這里要加上./,否則會顯示文件不存在。

注意,這個./指的不是linux當前的路徑,而是在Mongodb的文件存儲中的路徑。

之后,有put有get必有delete。

接下來看看如何刪除MongoDB中的大文件.

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?list

[sudo]?password?for?neil:

connected?to:?127.0.0.1

./mongodbBook.tar.gz203

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?delete?./mongodbBook.tar.gz

connected?to:?127.0.0.1

done!

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongofiles?list

connected?to:?127.0.0.1

[neil@neilhost?~]$?sudo?/usr/local/mongodb/bin/mongo

MongoDB?shell?version:?2.6.8

connecting?to:?test

>?db

test

>?show?collections

fs.chunks

fs.files

system.indexes

>?db.fs.files.find()

>

>?db.fs.chunks.find()

>

刪除之后可以看到fs.files中的元數據和fs.chunk中的二進制數據都沒有了。

總結

以上是生活随笔為你收集整理的linux删除grid数据文件,MongoDB进阶系列(13)——GridFS大文件的添加、获取、查看、删除...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。