Evogb Suite

Evogb Storage

GLOBAL

Modo de Entrada

Haz clic o arrastra archivos aquí
Límite de subida: 75 MB por archivo
Configuración Global (Aplica a todos)
0 / 1500

Estadísticas del Server

Capacidad Total0.00
Espacio Usado0.00
Espacio Libre0.00
Archivos0
Subidas (Hoy)0
Subidas (30D)0
Visitantes0
Users Uploaders0
Auto-Delete Files0
Peticiones GET0
Peticiones POST0
Subidas Exitosas0
QRs Generados0
Enlaces Acortados0
Errores0
IPs Bloqueadas0
Carpetas creadas0
Auto-Delete Folders0
Archivos Protegidos0
Carpetas Protegidas0
Almacenamiento Global Utilizado0.00%

API para Desarrolladores

Endpoints Disponibles

POST https://evogb.win/api/upload
multipart/form-data
GET https://evogb.win/api/stats
application/json
GET https://evogb.win/api/metadata/:id
application/json

Ejemplos de Integración - Upload

# Sube un archivo con los ajustes por defecto del servidor (URL 6 caracteres)
curl -X POST https://evogb.win/api/upload \
-F "file=@/ruta/a/tu/archivo.zip"
Respuesta Esperada (JSON)
{
"success": true,
"id": "aB3dEf",
"url": "https://files.evogb.win/aB3dEf.zip",
"name": "archivo.zip",
"extension": "zip",
"mime_type": "application/zip",
"type": "archive",
"size": "5.40 MB",
"size_bytes": 5662310,
"author": "Anónimo",
"description": "",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": null
}
# Sube un archivo con auto-eliminación en 24 horas y ruta simulada
curl -X POST https://evogb.win/api/upload \
-F "file=@/ruta/a/tu/imagen.png" \
-F "urlMode=custom_path" \
-F "customPathName=app/assets" \
-F "author=MiAppBackup" \
-F "expireValue=1" \
-F "expireUnit=day"
Respuesta Esperada (JSON)
{
"success": true,
"id": "app/assets/imagen.png",
"url": "https://files.evogb.win/app/assets/imagen.png",
"name": "imagen.png",
"extension": "png",
"mime_type": "image/png",
"type": "image",
"size": "2.10 MB",
"size_bytes": 2202009,
"author": "MiAppBackup",
"description": "Backup de base de datos",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-25T02:07:00.000Z"
}
async function uploadFile(fileInput) {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('urlMode', 'custom_name');
formData.append('author', 'UsuarioWeb');
try {
const response = await fetch('https://evogb.win/api/upload', {
method: 'POST',
body: formData
});
const data = await response.json();
if (data.success) console.log('✅ URL:', data.url);
} catch (err) {
console.error('❌ Error:', err);
}
}
Respuesta Esperada (JSON)
{
"success": true,
"id": "foto_perfil.jpg",
"url": "https://files.evogb.win/foto_perfil.jpg",
"name": "foto_perfil.jpg",
"extension": "jpg",
"mime_type": "image/jpeg",
"type": "image",
"size": "1.50 MB",
"size_bytes": 1572864,
"author": "UsuarioWeb",
"description": "",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": null
}
async function uploadFromUrl(imageUrl) {
try {
const response = await fetch('https://evogb.win/api/upload', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
url: imageUrl,
author: 'UsuarioWeb'
})
});
const data = await response.json();
if (data.success) console.log('✅ URL:', data.url);
} catch (err) {
console.error('❌ Error:', err);
}
}
Respuesta Esperada (JSON)
{
"success": true,
"id": "url_imagen.png",
"url": "https://files.evogb.win/url_imagen.png",
"name": "imagen.png",
"extension": "png",
"mime_type": "image/png",
"type": "image",
"size": "1.20 MB",
"size_bytes": 1258291,
"author": "UsuarioWeb",
"description": "",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": null
}
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
async function uploadToCDN(filePath) {
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
form.append('urlMode', 'default');
const response = await axios.post('https://evogb.win/api/upload', form, {
headers: form.getHeaders()
});
return response.data.url;
}
Respuesta Esperada (Objeto Data)
{
"success": true,
"id": "x8Yj2k.pdf",
"url": "https://files.evogb.win/x8Yj2k.pdf",
"name": "reporte_mensual.pdf",
"extension": "pdf",
"mime_type": "application/pdf",
"type": "document",
"size": "3.50 MB",
"size_bytes": 3670016,
"author": "Anónimo",
"description": "",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": null
}
import requests
def upload_file(file_path):
url = "https://evogb.win/api/upload"
with open(file_path, 'rb') as f:
files = {'file': f}
data = {
'urlMode': 'custom_length',
'customLength': 10
}
response = requests.post(url, files=files, data=data)
if response.status_code == 200:
print("✅ URL:", response.json().get('url'))
Respuesta Esperada (JSON)
{
"success": true,
"id": "L1nK9zQwEr.docx",
"url": "https://files.evogb.win/L1nK9zQwEr.docx",
"name": "documento_final.docx",
"extension": "docx",
"mime_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"type": "document",
"size": "1.15 MB",
"size_bytes": 1205862,
"author": "Anónimo",
"description": "",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": null
}

Diccionario de Parámetros - Upload

¿Puedo controlar todo esto desde mi código?
¡Sí, al 100%! La interfaz web es solo una comodidad visual. Si subes archivos mediante JS (Fetch), Node.js o Python usando FormData, puedes enviar cualquiera de estos parámetros y la API aplicará tus reglas de expiración, contraseñas, rutas y descripciones de forma nativa.
KeyTipoRequeridoDescripción y Reglas
fileFile/BlobSí*Archivo físico a subir. Requerido si no usas url.
Límite: Máx. capacidad del server (1 GB) por archivo.
urlStringSí*URL remota para que el server la descargue e importe. Útil si quieres subir archivos directamente usando enlaces de internet.
Ejemplo: https://dominio.com/img.png
urlModeStringNoDefine el formato del enlace final generado.
Valores soportados:
default: Genera un ID aleatorio rápido de 6 caracteres.
custom_length: Genera un ID aleatorio del tamaño que indiques usando el parámetro customLength (Mínimo: 6, Máximo: 30 caracteres).
custom_name: Conserva el nombre original del archivo en la URL (los espacios en blanco se reemplazarán por guiones bajos _).
custom_path: Crea una estructura de directorios virtuales usando el parámetro customPathName. Usa el símbolo / para anidar carpetas. Permite un máximo de 7 subniveles (Ej: assets/2026/fotos/).
Defecto: default
customLengthNumberNoLongitud del ID aleatorio. Aplica si urlMode es custom_length.
Rango: 6 a 30. Defecto: 6. Ejemplo: 12
charTypeStringNoFiltro de caracteres para generar el ID aleatorio. Aplica únicamente cuando el enlace se genera automáticamente (modos default o custom_length).
Valores soportados:
alphanumeric: Mezcla letras (mayúsculas y minúsculas) y números (Ej: aB3dEf).
letters: Usa únicamente letras (Ej: AbCdEf).
numbers: Usa únicamente números (Ej: 123456).
Defecto: alphanumeric
customPathNameStringNoRuta virtual anidada. Aplica si urlMode es custom_path.
Límite: Máx 7 subniveles. Ejemplo: assets/2026/
authorStringNoNombre del creador o firma de tu aplicación/bot.
Límite: Máx 50 caracteres. Defecto: Anónimo
descriptionStringNoComentario o nota descriptiva adjunta al archivo.
Límite: Máx 1500 caracteres.
expireValueNumberNoCantidad de tiempo que el archivo estará disponible (TTL) antes de ser eliminado automáticamente de los servidores.
Reglas de uso:
• Este valor es solo la cantidad; la unidad de tiempo se define en el parámetro expireUnit (minutos, días, meses, años).
• Si envías 0 (o no envías el parámetro), el archivo será Permanente y no se borrará nunca.
Ejemplo: Para que un archivo dure 15 días, debes enviar expireValue=15 junto con expireUnit=day.
Defecto: 0 (Permanente)
expireUnitStringNoUnidad de medida de tiempo que acompaña al parámetro expireValue.
Valores soportados:
min: Minutos.
day: Días.
month: Meses (se calcula como bloques de 30 días).
year: Años (se calcula como 365 días).
Nota: Este parámetro es ignorado si expireValue se envía como 0 (permanente).
Defecto: day
passwordStringNoContraseña para asegurar tu archivo. Al enviarla, el acceso público se bloquea instantáneamente. Para descargarlo o leer sus metadatos mediante la API, se deberá proveer esta misma clave (vía Cookie, Parámetro URL o Header oculto).
¡Atención: No existe mecanismo de recuperación! Si olvidas la clave, perderás el acceso al archivo para siempre. Ejemplo: S3cr3t_20%2483!
unlockDurationValueNumberNoDefine la duración de la "sesión desbloqueada" en el navegador del usuario final.
¿Cómo funciona? Cuando un usuario ingresa la contraseña correctamente en la web, el servidor le otorga una Cookie de acceso temporal. Este valor define cuántas unidades de tiempo durará esa Cookie antes de caducar y volver a pedirle la contraseña.
Ejemplo: Si envías 7, la sesión durará 7 unidades de tiempo (definidas en el parámetro unlockDurationUnit el tiempo).
Rango: Mayor o igual a 1. Defecto: 7
unlockDurationUnitStringNoUnidad de medida de tiempo que acompaña al parámetro unlockDurationValue.
Valores soportados:
hour: Horas.
day: Días.
month: Meses.
year: Años.
Ejemplo de uso: Si envías unlockDurationValue=12 y unlockDurationUnit=hour, el usuario podrá descargar el archivo las veces que quiera sin ingresar la clave durante 12 horas.
Defecto: day

Ejemplos de Integración - Contenido Libre

Contenido Público:
Acceder a los archivos o la estructura de carpetas (Evogb Share) que no tienen contraseña es directo. No necesitas enviar cabeceras (Headers) ni Cookies adicionales, basta con una simple petición GET.
# Descarga un archivo directamente usando su URL pública
curl -X GET https://evogb.win/htIvGc.webp -o imagen.webp
# Obtiene la estructura JSON completa de una carpeta (Evogb Share)
# Usa la ruta /f/ seguida del ID de la carpeta y terminando en /api
curl -X GET https://evogb.win/f/w0sw9o/api
Respuesta Esperada (JSON Estructura de Carpeta)
{
"success": true,
"data": {
"id": "w0sw9o",
"name": "Archivos del Proyecto Alpha",
"type": "folder",
"protected": false,
"auto_delete": true,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-31T02:07:00.000Z",
"file_count": 1,
"folder_count": 1,
"total_items": 2,
"structure": {
"files": [
{
"id": "htIvGc.pdf",
"url": "https://files.evogb.win/htIvGc.pdf",
"name": "presupuesto_2026.pdf",
"extension": "pdf",
"mime_type": "application/pdf",
"type": "document",
"size": "0.10 MB",
"size_bytes": 107456,
"author": "Equipo Finanzas",
"description": "Presupuesto anual aprobado.",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-31T02:07:00.000Z"
}
],
"subfolders": {
"f-1": {
"id": "f-1",
"name": "Recursos Gráficos",
"type": "folder",
"protected": false,
"auto_delete": true,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-31T02:07:00.000Z",
"file_count": 1,
"folder_count": 0,
"total_items": 1,
"structure": {
"files": [
{
"id": "0UQNHQ.webp",
"url": "https://files.evogb.win/0UQNHQ.webp",
"name": "banner.webp",
"extension": "webp",
"mime_type": "image/webp",
"type": "image",
"size": "2.11 MB",
"size_bytes": 2212495,
"author": "Diseño UI",
"description": "Banner de marketing.",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-31T02:07:00.000Z"
}
],
"subfolders": {}
}
}
}
}
}
}

Ejemplos de Integración - Contenido Protegido

Importante:
Existen 3 métodos para acceder o descargar un archivo o carpeta protegidos mediante la API. Si no provees la contraseña correcta por alguno de estos medios, el sistema bloqueará la conexión. No existe mecanismo de recuperación para usuarios si se olvida la contraseña. Eres responsable de dónde publicas esta clave.
# Ideal para scripts backend limpios. Se pasa la clave oculta en los headers.
# Aplica para descargar archivos y para leer /api/metadata/
curl -X GET https://evogb.win/aB3dEf.pdf \
-H "x-password: MiClave123" \
-o mi_archivo.pdf
# Genial si quieres poner el enlace directo en un botón HTML o usar wget/curl rápido.
curl -X GET "https://evogb.win/aB3dEf.pdf?password=MiClave123" \
-o mi_archivo.pdf

Ejemplos de Integración - Metadata

async function getFileMetadata(fileId) {
try {
const response = await fetch(`https://evogb.win/api/metadata/${fileId}`);
const meta = await response.json();
if (meta.success) {
console.log(`Nombre: ${meta.data.name}`);
console.log(`Tamaño: ${meta.data.size}`);
console.log(`Metadata: ${JSON.stringify(meta.data, null, 2)}`);
} else if (meta.protected) {
console.error('Bloqueado:', meta.message);
}
} catch (err) {
console.error('❌ Error:', err);
}
}
Respuesta Esperada (JSON)
{
"success": true,
"data": {
"id": "aB3dEf",
"url": "https://files.evogb.win/aB3dEf.pdf",
"name": "documento_importante.pdf",
"extension": "pdf",
"mime_type": "application/pdf",
"type": "document",
"size": "1.95 MB",
"size_bytes": 2048576,
"author": "UsuarioWeb",
"description": "Reporte del proyecto.",
"protected": false,
"created_at": "2026-07-24T02:07:00.000Z",
"expires_at": "2026-07-31T02:07:00.000Z"
}
}
# Si el archivo NO tiene contraseña, esto devolverá el JSON completo:
curl -X GET https://evogb.win/api/metadata/aB3dEf.pdf
# Si el archivo TIENE contraseña, envíala en el header para revelar sus datos.
curl -X GET https://evogb.win/api/metadata/aB3dEf \
-H "x-password: MiClave123"
Respuesta si NO envías la contraseña
{
"success": false,
"protected": true,
"isFolder": false,
"message": "Este archivo está protegido. Ingresa la contraseña para visualizar su contenido."
}

Diccionario de Parámetros de Respuesta - Metadata

Key (JSON)TipoDescripción Técnica
idStringIdentificador único del archivo alojado.
urlStringEnlace directo real y público al archivo original.
nameStringNombre original del archivo al momento de subirlo.
extensionStringExtensión del archivo (ej. pdf, png).
mime_typeStringTipo de contenido técnico (ej. application/pdf).
typeStringCategoría estandarizada (image, video, document, code, archive, other).
sizeStringTamaño legible formateado (ej. 2.50 MB).
size_bytesNumberTamaño exacto del archivo en bytes.
authorStringEtiqueta o autor personalizado asignado.
descriptionStringComentario o nota adjunta al archivo.
protectedBooleanIndica si el archivo o la carpeta están protegidos con contraseña.
created_atStringFecha de subida en formato ISO 8601 (UTC).
expires_atString / NullFecha exacta de eliminación (ISO 8601) si tiene auto-eliminación, o null.

Ejemplos de Integración - Stats

async function getServerStats() {
try {
const response = await fetch('https://evogb.win/api/stats');
const stats = await response.json();
console.log(`Archivos Subidos: ${stats.total_files}`);
console.log(`Archivos Protegidos: ${stats.protected_files}`);
} catch (err) {
console.error('❌ Error obteniendo stats:', err);
}
}
Respuesta Esperada (JSON)
{
"max_upload_mb": 75,
"total_storage_gb": 1000,
"total_files": 59,
"used_bytes": 21474836,
"success_count": 59,
"error_count": 4,
"uploads_today": 14,
"uploads_30_days": 29,
"visitors": 285,
"uploaders": 7,
"auto_delete": 0,
"total_get": 9636,
"total_post": 201,
"blocked_ips": 0,
"total_qrs": 31,
"total_shortlinks": 8,
"total_folders": 7,
"auto_delete_folders": 7,
"protected_files": 2,
"protected_folders": 0
}
# Solicita las estadísticas globales del servidor en formato JSON
curl -X GET https://evogb.win/api/stats

Diccionario de Parámetros de Respuesta (Stats)

Key (JSON)TipoDescripción Técnica
max_upload_mbNumberLímite máximo permitido de subida por archivo (MB).
total_storage_gbNumberCapacidad total del disco global (GB).
total_filesNumberCantidad total de archivos alojados.
used_bytesNumberTotal de bytes exactos consumidos en la nube.
uploads_todayNumberArchivos subidos hoy.
uploads_30_daysNumberArchivos subidos en los últimos 30 días.
visitorsNumberVisitantes (IPs únicas).
uploadersNumberIPs distintas que han procesado una subida.
auto_deleteNumberArchivos con un TTL activo listos para borrarse.
total_get / total_postNumberPeticiones procesadas por la red.
success_count / error_countNumberConteo de subidas exitosas y errores del servidor.
total_qrs / total_shortlinksNumberCantidad de Códigos QR y Enlaces Acortados generados.
total_foldersNumberTotal de Carpetas (Evogb Share) creadas.
protected_filesNumberTotal de archivos asegurados con contraseña.
protected_foldersNumberTotal de carpetas (Evogb Share) aseguradas con contraseña.

Evogb Cloud

Descubre nuestro servicio especializado en almacenamiento y gestión de archivos. Optimizado para ofrecerte el mejor control sobre tu contenido estático en la red global con características premium.

Gestiona archivos con una sola cuenta
Interfaz optimizada para archivos
Personaliza nombres de archivos y URLs
Sirve archivos en tu propio dominio
Visor de medios y control de tráfico
Operativo 24/7 incluso en mantenimiento

Términos de Servicio

Al utilizar la red de almacenamiento y distribución de Evogb Storage, aceptas cumplir con estas políticas diseñadas para mantener la plataforma segura, libre y veloz.

1. Descripción del Servicio

Servicio gratuito de almacenamiento seguro y accesible globalmente. No requiere registro, el contenido es público y se distribuye mediante enlaces directos.

2. Uso Permitido

Permitimos múltiples subidas simultáneas, peticiones GET/POST ilimitadas y la integración vía API. Se admite contenido legal, incluyendo material para adultos (NSFW).

3. Uso Prohibido

Tolerancia CERO con CSAM (será reportado de inmediato al NCMEC). Prohibido alojar malware, phishing, o contenido ilegal como violencia sexual explícita.

4. Límites del Servicio

Si el rendimiento global se ve comprometido, aplicaremos reguladores temporales de velocidad o limitaremos las subidas por usuario visitante para evitar caídas del servicio.

5. Eliminación de Contenido

Empleamos Inteligencia Artificial para auditar archivos. Nos reservamos el derecho de eliminar material potencialmente peligroso y bloquear la IP infractora sin aviso.

6. Responsabilidad del Usuario

Evogb actúa exclusivamente como intermediario técnico. El usuario asume total responsabilidad legal e intelectual sobre el material subido o distribuido en nuestra red.

7. Disponibilidad

Como plataforma cien por ciento gratuita, no podemos garantizar un 100% de uptime. Pueden ocurrir mantenimientos de red o interrupciones temporales imprevistas.

8. Limitación de Responsabilidad

Evogb no se hace responsable por la pérdida de datos, interrupción de tus proyectos de software ni daños a terceros. Utilizas la plataforma bajo tu propio riesgo.

9. Cambios del Servicio

Nos reservamos el derecho de modificar la API, alterar las características del almacenamiento, aplicar nuevos límites o actualizar estos términos en cualquier momento.

10. Terminación

Podemos suspender tu acceso, someter tu IP a una lista negra global o eliminar todo tu contenido si determinamos un abuso flagrante de los recursos o normativas.

11. Contacto

Para consultas técnicas, problemas con la API, peticiones DMCA o cuestiones legales, comunícate directamente a nuestro correo de soporte: [email protected].

12. Política de Abuso

¿Encontraste archivos con malware, phishing o violaciones graves? Repórtalos a nuestro correo para realizar una mitigación y borrado inmediato del contenido de la red.

13. Evogb Share

Nuestra herramienta Evogb Share te permite agrupar decenas de archivos en una sola "carpeta virtual". Es ideal para compartir proyectos enteros. Puedes proteger estas carpetas con contraseñas que bloquean el acceso tanto a la estructura (API) como a las descargas directas individuales de la misma.

14. Contraseñas de Archivos

Al configurar una contraseña, bloqueas instantáneamente el acceso público al archivo. Tú eres el único responsable de esta clave. No existen mecanismos de recuperación. Si olvidas la clave, perderás el acceso.

Otros Servicios Evogb

Mascot