sql >> Base de Datos >  >> NoSQL >> MongoDB

Almacene una URL de datos en MongoDB para acceder a ella a través de la URL local (JS)

Esto es muy posible y de forma segura usando paquetes cfs:standard-packages y cfs:filesystem . Hablando con franqueza, no profundicé en su pregunta.

Es un hermoso paquete. Puede leer sobre aquí paquetes en profundidad .

CÓDIGO PARA CREAR COLECCIÓN DE SISTEMA DE ARCHIVOS

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

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

En breve. Los archivos se guardarán en el hermano a bundle/ ubicación en cfs/files/YOUR_COLLECTION_NAME . La información sobre el archivo se guardará en la colección cfs.YOUR_COLLECTION_NAME.filerecord y la ubicación temporal se usará para fines internos con la colección cfs._tempstore.chunks como a continuación.

Si guarda cualquier archivo usando el paquete anterior. Los metadatos se guardarán dentro de cfs.YOUR_COLLECTION_NAME.filerecord como abajo

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

en el lado del Cliente, puede obtener el enlace al archivo del documento usando

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

Esta URL es un enlace seguro basado en token al archivo en lugar de una ubicación directa a su servidor. Puede establecer configuraciones adicionales de permitir/denegar para descargar y cosas como las colecciones normales. ¡Espero que esto ayude!