MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Stockez une dataURL dans MongoDB pour y accéder via une URL locale (JS)

Ceci est tout à fait possible et de manière sécurisée en utilisant les packages cfs:standard-packages et cfs:filesystem . Franchement, je n'ai pas approfondi votre question.

C'est un beau paquet. Vous pouvez en savoir plus sur ici les packages en profondeur .

CODE POUR CRÉER UNE COLLECTION DE SYSTÈMES DE FICHIERS

var imageStore = new FS.Store.FileSystem("YOUR_COLLECTION_NAME");

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

Bref. Les fichiers seront enregistrés chez le frère de bundle/ emplacement à cfs/files/YOUR_COLLECTION_NAME . Les informations sur le fichier seront enregistrées dans la collection cfs.YOUR_COLLECTION_NAME.filerecord et l'emplacement temporaire sera utilisé à des fins internes avec la collection cfs._tempstore.chunks comme ci-dessous.

Si vous enregistrez un fichier en utilisant le package ci-dessus. Les métadonnées seront enregistrées dans le cfs.YOUR_COLLECTION_NAME.filerecord comme ci-dessous

{
    "_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")
        }
    }
}

côté client, vous pouvez obtenir le lien vers le fichier du document en utilisant

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

Cette URL est un lien sécurisé basé sur un jeton vers le fichier au lieu d'un emplacement direct vers votre serveur. Vous pouvez définir des paramètres supplémentaires d'autorisation/de refus pour le téléchargement et les éléments, tout comme les collections normales. J'espère que cela vous aidera !