Я сохранял свои файлы в FS моего сервера, и теперь я хочу сохранить их в mongodb (для упрощения резервного копирования и т.д.). Я хочу хранить файлы размером 4-5 Мб, и я попытался сохранить их с помощью мангуста с типом буфера. Я успешно сохранил их и восстановил их, но я заметил значительную медленную производительность при сохранении и извлечении файлов, таких как 4 или 5 Мб.
Моя схема:
let fileSchema = new Schema({
name: {type: String, required: true},
_announcement: {type: Schema.Types.ObjectId, ref: 'Announcements'},
data: Buffer,
contentType: String
});
Как я их извлекаю с сервера expressjs:
let name = encodeURIComponent(file.name);
res.writeHead(200, {
'Content-Type': file.contentType,
'Content-Disposition': 'attachment;filename*=UTF-8\'\'' + name
});
res.write(new Buffer(file.data));
Мой вопрос в том, следует ли мне использовать некоторые функции сжатия zlib, такие как "deflate" для сжатия буфера, прежде чем сохранять их в mongodb, а затем распаковать двоичный файл перед отправкой их клиенту? Это сделает весь процесс быстрее? Я что-то упустил?