Attachments: Storing Attachments
In order to store an attachment in RavenDB you need to create a document. Then you can attach an attachment to the document using the session.advanced.attachments.store()
method.
Attachments, just like documents, are a part of the session and will be only saved on the Server when DocumentSession.saveChanges()
is executed.
Syntax
Attachments can be stored using one of the following session.advanced.attachments.store()
methods:
session.advanced.attachments.store(documentId, name, stream, [contentType]);
session.advanced.attachments.store(entity, name, stream, [contentType]);
Parameters | ||
---|---|---|
entity or documentId | object or string | instance of the entity or the entity ID |
name | string | attachment name |
stream | Readable or Buffer |
attachment content |
contentType | string | attachment content type |
Example
const session = store.openSession();
const file1 = fs.createReadStream("001.jpg");
const file2 = fs.createReadStream("002.jpg");
const file3 = fs.createReadStream("003.jpg");
const file4 = fs.createReadStream("004.mp4");
const album = new Album();
album.name = "Holidays";
album.description = "Holidays travel pictures of the all family";
album.tags = [ "Holidays Travel", "All Family" ];
await session.store(album, "albums/1");
session.advanced.attachments
.store("albums/1", "001.jpg", file1, "image/jpeg");
session.advanced.attachments
.store("albums/1", "002.jpg", file2, "image/jpeg");
session.advanced.attachments
.store("albums/1", "003.jpg", file3, "image/jpeg");
session.advanced.attachments
.store("albums/1", "004.mp4", file4, "video/mp4");
await session.saveChanges();