Controladores de descarga¶
Con GeoNode 4.2.x se ha introducido el concepto de controlador de descargas y, por supuesto, GeoNode proporciona una implementación predeterminada que procesa la descarga a través de WPS.
Siga un ejemplo de cómo crear un controlador de descarga personalizado y reemplazar el predeterminado o agregar uno adicional.
Ajustes¶
DEFAULT_DATASET_DOWNLOAD_HANDLER¶
Predeterminado:
geonode.capas.download_handler.DatasetDownloadHandlerruta a la ubicación del controlador de descarga
DATASET_DOWNLOAD_HANDLERS¶
Predeterminado:
[]Lista de rutas de los controladores de descarga adicionales
CÓDIGO¶
El controlador de descarga predeterminado se coloca en el [paquete] geonode.capas (https://github.com/GeoNode/geonode/blob/master/geonode/capas/download_handler.py)
Siga un ejemplo de una clase básica para definir el controlador de descarga:
- clase DatasetDownloadHandler:
- def __str__(yo):
devolver f»{self.__módulo__}.{self.__clase__.__nombre__}»
- def __repr__(yo):
devolver uno mismo.__str__()
- def __init__(self, solicitud, nombre_recurso) -> Ninguno:
self.request = solicitud self.resource_name = nombre_recurso self._resource = Ninguno
- def get_download_response(yo):
«»» Método principal utilizado, este método debe devolver el objeto de respuesta «»» devolver respuesta @property
- def download_url(yo):
«»» Utilizado por la API, debe devolver la URL desde donde se puede descargar el recurso «»» return reverse(«dataset_download», args=[resource.alternate])
Si prefieres heredar del ya existente, la respuesta se genera en el método process_dowload