# 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"{
"success": true,
"id": "aB3dEf",
"url": "https://evogb.win/aB3dEf.zip",
"r2_path": "temp/aB3dEf.zip"
}# 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"{
"success": true,
"id": "app_assets_imagen_png",
"url": "https://evogb.win/app/assets/imagen.png",
"expires": "2024-05-20T14:30: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);
}
}{
"success": true,
"id": "foto_perfil_jpg",
"url": "https://evogb.win/foto_perfil.jpg"
}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);
}
}{
"success": true,
"id": "url_imagen_png",
"url": "https://evogb.win/url_imagen.png"
}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;
}{
"success": true,
"id": "x8Yj2k",
"url": "https://evogb.win/x8Yj2k.pdf"
}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')){
"success": true,
"id": "L1nK9zQwEr",
"url": "https://evogb.win/L1nK9zQwEr.docx"
}| Key | Tipo | Requerido | Descripción |
|---|---|---|---|
| file | File/Blob | Sí | Archivo a subir. Respetar límite en MB del servidor. |
| urlMode | String | No | default, custom_length, custom_name, custom_path. |
| customLength | Number | No | Rango: 6-30. Aplica solo si urlMode es custom_length. |
| customPathName | String | No | Ruta virtual (Ej: img/2023). Si urlMode es custom_path. |
| expireValue | Number | No | Cantidad de tiempo de vida (TTL). 0 es permanente. |
| expireUnit | String | No | Multiplicador: min, day, month, year. |
| password | String | No | Contraseña para bloquear el archivo/carpeta. ¡No hay recuperación si se olvida! |
| unlockDurationValue | Number | No | Tiempo que dura la sesión desbloqueada. Defecto: 7. |
| unlockDurationUnit | String | No | Multiplicador de sesión: hour, day, month, year. Defecto: day. |
# 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{
"success": true,
"data": {
"id": "w0sw9o",
"name": "Archivos del Proyecto Alpha",
"created_at": "2026-04-21T01:33:02.882Z",
"auto_delete": true,
"expire_date": "2026-04-28T01:33:02.882Z",
"structure": {
"files":[
{
"name": "presupuesto_2026.pdf",
"ext": "pdf",
"author": "Equipo Finanzas",
"description": "Documento con el desglose del presupuesto anual aprobado.",
"url": "https://files.evogb.win/htIvGc.pdf",
"size": "0.10 MB",
"size_bytes": 107456,
"date": "2026-04-21T01:33:02.753Z"
}
],
"subfolders": {
"f-1": {
"name": "Recursos Gráficos",
"files":[
{
"name": "banner_principal.webp",
"ext": "webp",
"author": "Diseño UI",
"description": "Banner principal para la campaña de marketing. Resolución 1920x1080.",
"url": "https://files.evogb.win/0UQNHQ.webp",
"size": "2.11 MB",
"size_bytes": 114662,
"date": "2026-04-21T01:33:02.753Z"
}
]
}
}
}
}
}# 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.pdfasync 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.filename}`);
console.log(`Tamaño: ${meta.data.size.formatted}`);
console.log(`Metadata: ${JSON.stringify(meta.data, null, 2)}`);
} else if (meta.protected) {
console.error('Bloqueado:', meta.message);
}
} catch (err) {
console.error('❌ Error:', err);
}
}{
"success": true,
"data": {
"id": "aB3dEf",
"filename": "documento_importante.pdf",
"mime_type": "application/pdf",
"size": {
"bytes": 2048576,
"formatted": "1.95 MB"
},
"author": "UsuarioWeb",
"description": "Reporte del proyecto.",
"upload_date": "2026-04-20T14:30:00.000Z",
"expiration": {
"is_permanent": false,
"expires_at": "2026-04-27T14:30:00.000Z"
},
"download_url": "https://files.evogb.win/aB3dEf.pdf"
}
}# 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"{
"success": false,
"protected": true,
"isFolder": false,
"message": "Este archivo está protegido. Ingresa la contraseña para visualizar su contenido."
}| Key (JSON) | Tipo | Descripción Técnica |
|---|---|---|
| id | String | Identificador único del archivo alojado. |
| filename | String | Nombre original del archivo al momento de subirlo. |
| mime_type | String | Tipo de contenido del archivo (ej. application/pdf). |
| size.formatted | String | Tamaño legible formateado en KB, MB o GB. |
| description | String | Comentario o nota adjunta al archivo. |
| author | String | Etiqueta o autor personalizado asignado. |
| expiration.is_permanent | Boolean | Indica si el archivo está guardado sin fecha de caducidad. |
| download_url | String | Enlace directo real y público al archivo original. |
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);
}
}{
"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| Key (JSON) | Tipo | Descripción Técnica |
|---|---|---|
| max_upload_mb | Number | Límite máximo permitido de subida por archivo (MB). |
| total_storage_gb | Number | Capacidad total del disco global (GB). |
| total_files | Number | Cantidad total de archivos alojados. |
| used_bytes | Number | Total de bytes exactos consumidos en la nube. |
| uploads_today | Number | Archivos subidos hoy. |
| uploads_30_days | Number | Archivos subidos en los últimos 30 días. |
| visitors | Number | Visitantes (IPs únicas). |
| uploaders | Number | IPs distintas que han procesado una subida. |
| auto_delete | Number | Archivos con un TTL activo listos para borrarse. |
| total_get / total_post | Number | Peticiones procesadas por la red. |
| success_count / error_count | Number | Conteo de subidas exitosas y errores del servidor. |
| total_qrs / total_shortlinks | Number | Cantidad de Códigos QR y Enlaces Acortados generados. |
| total_folders | Number | Total de Carpetas (Evogb Share) creadas. |
| protected_files | Number | Total de archivos asegurados con contraseña. |
| protected_folders | Number | Total de carpetas (Evogb Share) aseguradas con contraseña. |
El proyecto se mantiene vivo gracias al apoyo de nuestra comunidad. Tu donación nos ayuda a cubrir los costos de los servidores, desarrollar nuevas herramientas y garantizar que siga siendo GRATIS y de alta velocidad. ¡Anímate a formar parte del crecimiento de Evogb Suite!
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.
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.
Servicio gratuito de almacenamiento seguro y accesible globalmente. No requiere registro, el contenido es público y se distribuye mediante enlaces directos.
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).
Tolerancia CERO con CSAM (será reportado de inmediato al NCMEC). Prohibido alojar malware, phishing, o contenido ilegal como violencia sexual explícita.
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.
Empleamos Inteligencia Artificial para auditar archivos. Nos reservamos el derecho de eliminar material potencialmente peligroso y bloquear la IP infractora sin aviso.
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.
Como plataforma cien por ciento gratuita, no podemos garantizar un 100% de uptime. Pueden ocurrir mantenimientos de red o interrupciones temporales imprevistas.
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.
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.
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.
Para consultas técnicas, problemas con la API, peticiones DMCA o cuestiones legales, comunícate directamente a nuestro correo de soporte: [email protected].
¿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.
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.
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.