MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Armazene um dataURL no MongoDB para acessá-lo via URL local (JS)


Isso é muito possível e de forma segura usando pacotes cfs:standard-packages e cfs:filesystem . Francamente falando, não fui a fundo na sua pergunta.

É um lindo pacote. Você pode ler acima aqui pacotes em profundidade .

CÓDIGO PARA CRIAR COLEÇÃO DO FILESYSTEM
var imageStore = new FS.Store.FileSystem("YOUR_COLLECTION_NAME");

YOUR_COLLECTION_NAME = new FS.Collection("YOUR_COLLECTION_NAME", {
  stores: [imageStore]
});

Resumidamente. Os arquivos serão salvos no irmão para bundle/ localização em cfs/files/YOUR_COLLECTION_NAME . As informações sobre o arquivo serão salvas na coleção cfs.YOUR_COLLECTION_NAME.filerecord e a localização temporária será usada para fins internos com a coleção cfs._tempstore.chunks como abaixo.

Se você salvar qualquer arquivo usando o pacote acima. Os metadados serão salvos dentro do cfs.YOUR_COLLECTION_NAME.filerecord como abaixo
{
    "_id" : "TBmxbsL2cMCM2tEc7",
    "original" : {
        "name" : "photo.jpg",
        "updatedAt" : ISODate("2017-07-06T12:54:50.115Z"),
        "size" : 2261,
        "type" : "image/jpeg"
    },
    "uploadedAt" : ISODate("2017-07-08T06:58:32.433Z"),
    "copies" : {
        "YOUR_COLLECTION_NAME" : {
            "name" : "photo.jpg",
            "type" : "image/jpeg",
            "size" : 2261,
            "key" : "YOUR_COLLECTION_NAME-TBmxbsL2cMCM2tEc7-photo.jpg",
            "updatedAt" : ISODate("2017-07-08T06:58:32.475Z"),
            "createdAt" : ISODate("2017-07-08T06:58:32.475Z")
        }
    }
}

no lado do cliente, você pode obter o link para o arquivo do documento usando

YOUR_COLLECTION_NAME.find({"_id" : "TBmxbsL2cMCM2tEc7"}).url();

Este URL é um link seguro baseado em token para o arquivo em vez de um local direto para o seu servidor. Você pode definir configurações adicionais de permissão/negação para download e outras coisas como coleções normais. Espero que isto ajude!