Все файлы в GridFS хранятся в fs.files
и fs.chunks
, где блок имеет размер по умолчанию 255 КБ
Таким образом, вы можете получить весь размер в килобайтах, вычислив
fs.chunks.find().count() * 255
Обратите внимание, что это предполагает, что вы используете значение по умолчанию db.fs
в качестве корзины GridFS и размер фрагмента по умолчанию.
В Метеоре вы можете получить Коллекции Сетки, как и любую другую коллекцию:
const FsChunks = new Mongo.Collection('fs.chunks')
Редактировать: этот метод несколько неточен, потому что
Последний кусок только настолько большой, насколько это необходимо. Аналогично, файлы, размер которых не превышает размер чанка, имеют только окончательный чанк, который использует только столько места, сколько необходимо, плюс некоторые дополнительные метаданные.
Таким образом, вы получите результат, значительно превышающий реальный размер, с увеличением количества файлов. Это не составит большой проблемы, если у вас есть несколько больших файлов.
Однако для других методов все еще требуется aggregate
, который уже был хорошо описан , хорошо описан , или ручной обход fs.files
и суммирование его свойства length
.