2014-05-21 161 views
1

因此,每次使用GridFS上傳文件時,都會將元數據附加到它上面http://docs.mongodb.org/manual/reference/gridfs/#gridfs-files-collection,包括文件大小。如何獲取mongodb集合中GridFS文件的文件大小?

我使用carrierwave-mongoid gem上傳文件,我有一個索引頁,其中列出了文件的名稱,並且可以下載文件。

我需要得到所有這些文件的文件大小。我的問題是,我怎樣才能得到每個文件的文件大小?我如何通過Ruby獲取已經在gridfs文件元數據中的信息?

+0

不是一個真正的紅寶石用戶,但我認爲你至少可以從db.fs.files集合中獲取它。長度屬性表示文件長度。 – yaoxing

回答

0

是文件大小根據mongo docs

你必須抓住一些身份資料片從文件來訪問它蒙戈存儲爲文件的集合length。 mongo文檔顯示使用filename: "<your_file_name>"。爲了與file _id訪問 -

myid = BSON::ObjectId.from_string("57898fa2b5e1b565d4b9b5c8") 
result = fs_bucket.find(_id: myid).to_json 
obj = JSON.parse(result) 
puts obj 

然後你就可以訪問它作爲正常的JSON。