Skip to content

Latest commit

 

History

History
141 lines (114 loc) · 5.35 KB

File metadata and controls

141 lines (114 loc) · 5.35 KB

Plan de Mejoras para GYTECH Cloud - File Sharing Simple

Objetivo

Transformar GYTECH Cloud en una herramienta de file sharing simple y eficiente, enfocada únicamente en subir y compartir archivos temporalmente (no almacenamiento a largo plazo).

Mejoras Identificadas

1. Vista Previa de Archivos (Alta Prioridad)

  • Implementar preview inline para PDFs, imágenes, videos y documentos
  • Usar <iframe>, <embed> y <object> tags para embedder archivos
  • Integrar Google Viewer para documentos (Word, Excel, PowerPoint)
  • Generar thumbnails automáticos para imágenes y videos

2. Links Directos a Archivos (Alta Prioridad)

  • Crear endpoints para acceso directo a archivos individuales
  • Implementar header Content-Disposition: inline para preview en navegador
  • Generar URLs públicas para cada archivo dentro del share
  • Habilitar hotlinking opcional para casos de uso específicos

3. Múltiples Proveedores de Almacenamiento (Media Prioridad)

Arquitectura Actual: Solo S3 + Local Storage Propuesta: Agregar soporte para:

  • OneDrive - Microsoft Graph API
  • Google Drive - Google Drive API
  • Azure Blob Storage - Azure Storage SDK
  • Dropbox - Dropbox API

Implementación:

  • Crear abstract CloudStorageService interface
  • Implementar servicios específicos por proveedor
  • Actualizar FileService.getStorageService() para soporte multi-provider
  • Configuración per-share de storage provider

4. UI/UX Simplificada (Media Prioridad)

  • Interfaz estilo WeTransfer: drag & drop prominente
  • Proceso de upload en 2 pasos máximo
  • Página de share minimalista con preview
  • Progress indicators claros durante upload

5. Mejoras de Seguridad (Alta Prioridad)

  • Links con tokens de acceso únicos
  • Expiración automática configurable
  • Password protection opcional
  • Rate limiting por IP para downloads

Fases de Implementación

Fase 1 (2-3 semanas): Core Features

  1. Implementar vista previa de archivos
  2. Crear links directos a archivos individuales
  3. Mejorar UI de upload (drag & drop simple)
  4. Optimizar páginas de share para preview

Fase 2 (3-4 semanas): Storage Providers

  1. Implementar OneDrive integration
  2. Implementar Google Drive integration
  3. Implementar Azure Blob Storage
  4. Crear interface unificada de configuración

Fase 3 (1-2 semanas): Security & Polish

  1. Implementar tokens únicos para files
  2. Agregar configuración de expiración granular
  3. Mejorar error handling y user feedback
  4. Testing y optimización

Cambios Técnicos Principales

Backend

  • Nuevo CloudStorageInterface abstracto
  • Servicios específicos: OneDriveService, GoogleDriveService, AzureBlobService
  • Nuevos endpoints: GET /api/shares/:id/files/:fileId/preview
  • Metadata extendida para archivos (mimeType, thumbnails)

Frontend

  • Componente FilePreview para múltiples tipos
  • UI simplificada estilo WeTransfer
  • Drag & drop mejorado con progress indicators
  • Links directos copiables para cada archivo

Base de Datos

  • Campo storageProvider en tabla Share
  • Tabla FileMetadata para thumbnails y preview data
  • Índices optimizados para performance

Herramientas de Referencia Analizadas

File Sharing Simples (Competencia Directa)

  • Smash - Transfers ilimitados, enlaces personalizados, 1-30 días de disponibilidad
  • Send Anywhere - Transfers directos con códigos de 6 dígitos, hasta 10GB
  • TransferNow - 5GB gratis, 7 días de disponibilidad, sin registro
  • SwissTransfer - 50GB gratis, almacenamiento en Suiza, enfoque en privacidad
  • FileTransfer.io - 6GB drag & drop, URLs compartibles instantáneas

Características Clave de la Competencia

  • Temporalidad: Archivos disponibles por tiempo limitado (1-30 días)
  • Sin Registro: Transferencias sin crear cuenta
  • Seguridad: Cifrado end-to-end, password protection
  • Simplicidad: UI minimalista, proceso de 1-2 pasos
  • Links Directos: URLs públicas para archivos individuales

Implementación Multi-Cloud Identificada

  • Kloudless - API unificada para múltiples proveedores
  • lytics/cloudstorage - Librería Go para múltiples clouds
  • Cloud Files SDK - SDK unificado para OneDrive, Google Drive, S3, Azure Blob

Funcionalidades Específicas para Implementar

Vista Previa de Archivos

  • PDFs: <iframe src="file.pdf"> o Google PDF Viewer
  • Imágenes: Preview directo con thumbnails
  • Videos: <video> tag con controles nativos
  • Documentos: Google Docs Viewer para Word/Excel/PowerPoint
  • Código: Syntax highlighting para archivos de código

Links Directos

  • Endpoint: GET /api/files/:fileId/direct
  • Headers: Content-Disposition: inline para preview
  • Tokens únicos por archivo para seguridad
  • URLs amigables: /f/:token redirect a archivo real

Multi-Storage Architecture

interface CloudStorageProvider {
  upload(file: Buffer, path: string): Promise<string>;
  download(path: string): Promise<Buffer>;
  delete(path: string): Promise<void>;
  getUrl(path: string): Promise<string>;
  getMetadata(path: string): Promise<FileMetadata>;
}

Métricas de Éxito

  • Upload Speed: > 50MB/s promedio
  • Preview Load Time: < 2s para archivos < 50MB
  • User Flow: Upload completo en < 60s
  • Storage Flexibility: Soporte para 5+ proveedores
  • Security: 100% de archivos con tokens únicos

Plan creado el: 2025-08-07