MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Speichern Sie eine dataURL in MongoDB, um über eine lokale URL (JS) darauf zuzugreifen

Dies ist sehr wahrscheinlich und auf sichere Weise mit den Paketen cfs:standard-packages möglich und cfs:filesystem . Ehrlich gesagt bin ich auf Ihre Frage nicht in die Tiefe gegangen.

Es ist ein wunderschönes Paket. Sie können die obigen Pakete ausführlich nachlesen .

CODE ZUM ERSTELLEN EINER DATEISYSTEMSAMMLUNG

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

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

Zusamenfassend. Die Dateien werden unter dem Geschwister bundle/ gespeichert Speicherort unter cfs/files/YOUR_COLLECTION_NAME . Informationen über die Datei werden in der Sammlung cfs.YOUR_COLLECTION_NAME.filerecord gespeichert und der temporäre Speicherort wird für interne Zwecke mit der Sammlung cfs._tempstore.chunks verwendet wie nachstehend.

Wenn Sie eine Datei mit dem obigen Paket speichern. Die Metadaten werden im cfs.YOUR_COLLECTION_NAME.filerecord gespeichert wie unten

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

Auf der Client-Seite können Sie den Link zur Dokumentdatei mit

abrufen

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

Diese URL ist ein Token-basierter sicherer Link zu der Datei und kein direkter Standort zu Ihrem Server. Sie können zusätzliche Zulassungs-/Ablehnungseinstellungen für Downloads und ähnliches festlegen, genau wie bei normalen Sammlungen. Hoffe, das hilft!