:D
Information
Index
1. Introduccion
Esta documentación se divide en tres partes principales.
En la primera parte, se presentan guías prácticas diseñadas para que el usuario pueda familiarizarse rápidamente con el servicio. Estas guías permitirán a los usuarios realizar prácticas o pruebas, facilitando la creación de lo que necesiten de manera sencilla.
La segunda parte está enfocada en la interfaz web. Aquí, los usuarios aprenderán en profundidad cómo funciona y cómo interactuar con todas las funcionalidades que ofrece la plataforma.
Por último, la tercera parte es una guía detallada del API. En esta sección, los usuarios podrán conocer a fondo cómo utilizar el API para integraciones y desarrollos más avanzados.
2. Guias practicas
2.1. Cómo crear una máquina virtual
Debido a razones presupuestarias, no podemos ofrecerle una IP pública para cada máquina virtual. En su lugar, utilizamos una sola IP pública para todas las máquinas virtuales mediante NAT. Los servicios dentro de cada máquina virtual se configuran a través de un puerto de la IP pública, que se redirige a la dirección IP privada de la VM y al puerto correspondiente.
Ejemplo de configuración:
Para conectarse por SSH, usaríamos el puerto 22 junto con la IP pública.
Sin embargo, podemos configurar NAT de manera que, cuando llegue una solicitud al puerto 10000 con la IP pública como destino, esta se redirija a la IP privada y al puerto 22 de la máquina virtual.
Lo mismo ocurre con otros servicios que desee configurar, como un servidor HTTP. Se utilizaría otro puerto en la IP pública que, tras la redirección, se conectaría al puerto configurado en su máquina virtual (por ejemplo, el puerto 80).
Luego, la respuesta se enviaría de vuelta a Internet con la IP pública.
Nota: Esto solo será necesario si desea exponer servicios públicos en Internet.
Pasos para crear una máquina virtual:
1.
Acceda al panel de control y haga clic en "Máquinas Virtuales".
2.
Antes de crear la máquina, debe generar un par de claves para acceder a ella mediante SSH.
3.
Desplácese hacia abajo hasta la tabla llamada "Pares de Claves".
4.
Haga clic en "Crear" y asigne un nombre a su par de claves.
5.
Presione "Enviar", y se generará un par de claves de acceso público y privado.
6.
La clave pública se almacenará en la máquina virtual.
7.
La clave privada se le proporcionará para su descarga.
8.
Vuelva a la tabla de máquinas virtuales y presione el botón "Crear".
9.
En las configuraciones de la máquina virtual, seleccione su par de claves en la sección "Claves de Acceso" y haga clic en "Enviar".
Se creará una máquina virtual de tipo general-1, que cuenta con:
1 CPU
2GB de RAM
30GB de almacenamiento en SSD M.2 PCIe NVMe
El proceso de creación tomará aproximadamente 10 segundos. Una vez que la solicitud se haya procesado, haga clic en el botón con la flecha circular para verificar que la máquina virtual se haya creado correctamente.
Acceso mediante SSH:
1.
Una vez creada la máquina virtual, abra un terminal.
2.
Al crear la máquina virtual, se asignó un puerto en la IP pública que redirige a la máquina virtual con la IP privada y el puerto 22 para SSH.
3.
Desplácese hacia abajo hasta la tabla llamada "Destination NAT".
4.
En la columna Dst Port, encontrará el puerto asignado para la IP pública.
5.
En la columna To Port, verá el puerto 22, que indica la redirección hacia la IP privada de la máquina virtual.
6.
Ubique el archivo de clave privada que descargó y ajuste sus permisos con el siguiente comando:
chmod 600 /ruta/a/tu/archivo/clave_privada
7.
Ahora, en el terminal, ingrese el siguiente comando para conectarse a su máquina virtual:
ssh -i /ruta/a/tu/archivo/clave_privada username@<IP_PUBLICA> -p <puerto_dst_nat>
Recuerde:
<IP_PUBLICA> debe reemplazarse por la dirección IP pública de su máquina virtual.
<puerto_dst_nat> debe reemplazarse por el puerto asignado a la IP pública de la VM en la configuración NAT en la columna "Puerto de destino".
Solución de errores comunes con SSH
Si recibe errores relacionados con los permisos de la clave privada o un cambio en el ID del host, puede eliminar las entradas antiguas asociadas con esa IP pública utilizando el siguiente comando:
rm -r /home/usuario/.ssh
2.2. Cómo crear un almacenamiento Object Storage
Siga los siguientes pasos:
1.
Diríjase al panel de control y haga clic en "Object Storage".
2.
Ubique la tabla de Buckets y haga clic en "Crear".
3.
Asigne un nombre a su bucket y haga clic en "Enviar".
4.
Se creará un espacio de almacenamiento ilimitado donde, a través de la interfaz web, podrá subir archivos a dicho bucket.
5.
Para verificar la creación del bucket, actualice la tabla haciendo clic en el botón con la flecha circular.
6.
Una vez creado, haga clic en el nombre del bucket para ser redirigido a su página.
7.
Dentro de la página del bucket, ubique la tabla de objetos y haga clic en "Cargar datos".
8.
Puede arrastrar archivos desde su computadora o hacer clic en el botón "Seleccionar datos" para preparar los archivos antes de enviarlos al servidor.
9.
Una vez seleccionados los archivos, haga clic en "Enviar".
10.
No cierre la página hasta que aparezca el mensaje "Request processed".
¡Listo! Ahora tiene un almacenamiento de objetos donde podrá subir y gestionar sus archivos.
2.3. Cómo publicar un comentario
Publicar un comentario le permite compartir su opinión, recomendación o reseña sobre el servicio y su experiencia al utilizarlo. Sus comentarios ayudarán a que nuevos usuarios conozcan las experiencias de otros clientes y nos permitirán en donnzap.com mejorar continuamente el servicio para hacerlo más fácil y eficiente. Apreciamos mucho su comentario.
Pasos para publicar un comentario:
1.
Diríjase a la página de "Cuenta" desde la navegación superior.
2.
Haga clic en "Comentarios".
3.
Se mostrará una lista de comentarios publicados hasta el momento, junto con la paginación.
4.
Escriba su comentario en el cuadro de texto.
5.
Haga clic en "Enviar".
6.
Para verificar que su comentario ha sido enviado correctamente, haga clic en el botón con la flecha circular para actualizar la tabla.
Información adicional:
Su comentario se publicará de forma anónima; nadie sabrá quién lo publicó.
Próximamente, los comentarios incluirán la identificación del usuario.
Los comentarios serán visibles en la página de inicio de donnzap.com, para que cualquier visitante pueda verlos.
3. Interfaz web
4. API
4.1. Introduccion
Esta API está diseñada siguiendo los principios de la arquitectura REST (Transferencia de Estado Representacional). Permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en recursos del sistema mediante métodos HTTP estándar y representaciones de datos en formatos como JSON o XML.
Como puede observar en la URL base, solo se incluye "api" y no "restful-api". Esta decisión se tomó para simplificar la URL y facilitar su memorización, así como para generalizar su uso y facilitar la integración con sus aplicaciones.
URL base
https://donnzap.com/api/v1
Autenticación
Para autenticarse, incluya el encabezado "Autorización" con el valor de su clave secreta en cada solicitud HTTPS. La clave secreta es un token de acceso válido que puede obtener a través de la interfaz del panel de control, en la sección de claves API.
4.2. Puntos finales
4.2.1. POST /object-storage/buckets
Creara un bucket.
Solicitud
POST /object-storage/buckets HTTP/1.1 Content-Type: application/json Authorization: <API key> { "name": string }
Parametro Tipo Requerido Descripción
name string Si Nombre de el bucket (string no vacio).
Respuestas
200
El bucket se creo correctamente.
HTTP/1.1 200 OK Content-Type: application/json { "message": "Request processed", "status": "success", "statusCode": 200, "data": null }
4.2.2. DELETE /object-storage/buckets
Eliminara un bucket.
Solicitud
DELETE /object-storage/buckets HTTP/1.1 Content-Type: application/json Authorization: <API key> { "bucketID": string }
Parametro Tipo Requerido Descripción
bucketID string Si ID de el bucket (string no vacio).
Respuestas
200
El bucket se elimino correctamente.
HTTP/1.1 200 OK Content-Type: application/json { "message": "Request processed", "status": "success", "statusCode": 200, "data": null }
4.2.3. POST /object-storage/objects
Recive datos en partes, ejemplo:
export class Donnzap { constructor(conf) { this.endpoint = conf.endpoint } async objectStorageSend(file, bucket, progress) { if (file == undefined) return const CHUNK_SIZE = 500 * 1024 * 1024; // 500MB chunks const totalChunks = Math.ceil(file.size / CHUNK_SIZE); const url = this.endpoint; if (totalChunks == 0) { return false } for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) { const start = chunkIndex * CHUNK_SIZE; const end = Math.min(file.size, start + CHUNK_SIZE); const chunk = file.slice(start, end); const formData = new FormData(); formData.append('chunk', chunk); formData.append('chunkIndex', chunkIndex); formData.append('totalChunks', totalChunks); formData.append('fileName', file.name); formData.append('bucket', bucket); const options = { method: 'POST', body: formData, credentials: "include" } try { const res = await fetch(url, options); const datax = await res.json(); if (datax.statusCode != 200) { return datax; } else if (datax.data.complete == true) { return datax; } } catch (error) { console.error("Error uploading chunk:", error); return null } progress(`${Math.round(((chunkIndex + 1) / totalChunks) * 100)}%`, file.name); } return false } }