Как сохранить объекты в GridFS, не беря их из файла? - PullRequest
0 голосов
/ 28 января 2020

Я работаю в API Spring Boot, который может получать очень большие объекты и пытаться сохранить его в базе данных MongoDB. Из-за этого программа иногда выдает мне следующую ошибку:

org.bson.BsonMaximumSizeExceededException: Payload document size is larger than maximum of 16793600.

Я бы прочитал, что MongoDB разрешает только объекты размером менее 16 МБ, это очень неудобно для моей системы, потому что объект может легко преодолеть этот разрыв , Чтобы решить эту проблему, я читал о GridFS, технологии, которая позволяет преодолеть разрыв в 16 МБ файлов.

Сейчас я пытаюсь реализовать GridFS в моей системе, но я видел только примеры использования файлов для сохранения в базе данных, что-то вроде этого:

gridFsOperations.store(new FileInputStream("/Users/myuser/Desktop/text.txt"), "myText.txt", "text/plain", metaData);

Но я хочу сделать, это не взять данные из файла, а в API для получения объекта и сохранить его, что-то вроде этого:

@PostMapping
    public String save(@RequestBody Object object){
        DBObject metaData = new BasicDBObject();
        metaData.put("type", "data");
        gridFsOperations.store(object, metaData);
        return "Stored successfully...";
    }

Это возможный способ сделать это?

...