Introducción
Además de poder subir, editar y compartir ficheros a través del Control Panel de Plataforma existe una API REST disponible para realizar estas funciones.
Primero veremos como utilizar esta API de forma directa, utilizando un cliente REST, como puede ser Postman, y después veremos como hacer uso de este API REST a través del cliente java disponible.
Autenticación
Puesto que se necesita autenticación para realizar estas operaciones, a excepción de GET en algunos casos, necesitas autenticarte a través de OAuth. Para ello, debes hacer una petición GET a la ruta '/api-ops/login/username/{username}/password/{password}', sustituyendo los parámetros contenidos en llaves ({}).
Si las credenciales son correctas, recibirás un token de access, "access_token". Este token es el que utilizarás en todas las peticiones como cabecera de autenticación.
Esta cabecera tendrá este aspecto:
NOTA: Recuerda anteponer “Bearer al token de acceso.
Operaciones CRUD
Subir un fichero (POST)
Para subir un fichero, debes hacer una petición POST al endpoint '/controlpanel/binary-repository', con dos parámetros en el body:
Fichero binario ("file", obligatorio). Tamaño máximo 50 MB.
Metadatos ("metadata", opcional). Este parámetro se debe enviar en formato text.
Repositorio ("repository", opcional, por defecto Mongo Grid FS). En este parámetro se indica dónde quieres guardar el fichero binario. Existen dos opciones "MONGO_GRIDFS", y "FILE". Por defecto se almacena en Mongo.
Además de la cabecera de autenticación.
De vuelta recibirás un identificador que servirá para editar y descargar el fichero en el futuro.
Descargarse un fichero (GET)
Para descargar un binario, debes tener el identificador de dicho fichero, y hacer una petición GET al endpoint '/controlpanel/binary-repository/{id}', sustituyendo id por el identificador del fichero, que es devuelto por la plataforma en cada inserción.
En el caso de que el fichero binario no sea público, debes insertar la cabecera de autenticación igual que en el resto de operaciones.
Si introducimos este enlace en un navegador, en vez del JSON recibirirás el fichero binario.
Modificar un fichero (PUT)
Si tienes permisos para modificar un fichero, puedes hacerlo en el endpoint '/controlpanel/binary-repository/{id}' con método PUT, sustituyendo el id por el identificador del fichero binario.
Al igual que con la subida de ficheros, necesitas indicar:
Metadatos ("metadata" , es opcional)
Fichero binario ("file"). Tamalñi náximo 50MB.
El fichero se actualizará si recibes un HTTP 202.
Eliminar un fichero (DELETE)
Por último, para eliminar un fichero sobre el que tengas permisos, debes hacer una petición DELETE al endpoint '/controlpanel/binary-repository/{id}', sustituyendo el id por el identificador del fichero binario.
De la misma forma que en el PUT, recibirás un HTTP 202 si todo ha ido bien y el fichero ha sido eliminado de la plataforma.
Utilizando el API Java
Si tu objetivo es trabajar con binarios desde Java, existe una API que puedes utilizar.
Esta API contiene las operaciones anteriormente descritas en este artículo.
Para utilizarla, debes importar las dos clases del paquete:
- import com.minsait.onesait.platform.binaryrepository.*;
Este paquete contiene:
Cliente: BinaryRepositoryClient.java , se encarga de implementar el CRUD del repositorio de binarios, vía REST.
Modelo: BinaryDataFile.java , este modelo se utilizará para encapsular el fichero binario que se solicite a la plataforma
Inicialización del cliente
Necesitarás inicializar el cliente, pasándole como argumentos, tu usuario y contraseña, así como el servidor o dominio donde esté desplegada la plataforma:
Con tus credenciales, el cliente conseguirá la autenticación OAuth2.
Subida de fichero
Para subir un fichero, basta con llamar al método addBinaryFile(File file, String metadata, RepositoryType repository) del cliente. El fichero deberá ocupar como máximo 50MB.
Descargar un fichero
Para descargar un fichero, hay que hacer uso del método getBinary(String id), que devolverá un objeto del tipo BinaryDataFile, con el binario encapsulado.
Actualizar un fichero
Para actualizar un fichero, se hace uso del método updateBinaryFile(String id, File newFile, String newMetadata). El fichero deberá ocupar como máximo 50MB.
Borrar un fichero
Por último, para borrar un fichero, se debe llamar al método removeBinaryFile(String id)