Skip to content

Latest commit

 

History

History
122 lines (85 loc) · 3.73 KB

File metadata and controls

122 lines (85 loc) · 3.73 KB
🦀 Uploader-Browser - API-REST

Descripcion

Este proyecto nace con el objetivo de facilitar el proceso de compartir archivos entre un dispositivo móvil y una computadora de una forma más rápida, eficiente y personalizada, sin depender de aplicaciones de terceros. Actualmente existen varias formas de transferir archivos, como el uso de aplicaciones de mensajería (por ejemplo WhatsApp). Sin embargo, estas soluciones presentan varias limitaciones. En primer lugar, suelen tener restricciones en el tamaño o tipo de archivo que se puede enviar. En segundo lugar, los archivos terminan almacenados de forma poco organizada cuando llegan al computador, lo que obliga a dedicar tiempo adicional para ordenarlos. Finalmente, también existe la preocupación por la privacidad al depender de servicios externos. La idea de este proyecto es desarrollar un backend que interactúe directamente con el sistema de archivos del servidor y permita gestionar archivos y carpetas de forma estructurada. Este backend expone una API REST que posteriormente será consumida por un frontend desarrollado en React.js, el cual proporcionará una interfaz amigable para subir, organizar y gestionar archivos de manera sencilla.

Informacion tecnica

Puedes encontrar mas informacin del proyecto sobre la arquitectura, manejo de errores, el manejo de archivos, etc en mis posts de Linkedin

Instalación y ejecución

1. Clonar el repositorio

   https://github.com/Litardo-Jardy/Uploader-Browser-Rust.git

2. Restaurar dependencias

   cargo build

3. Crear .env apartir de .env.example para las variables de entorno

   BASE_DIR=la-ruta-sobre-la-que-se-va-a-trabajar
   SECRET=tu-firma-para-el-token
   USERR=tu-usuario-para-login
   PASS=tu-contraseña-para-login

4. Ejecutar del proyecto

   cargo run

Endpoints

Login:

      curl -s -X POST http://localhost:3000/login \
         -H "Content-Type: application/json" \
         -d '{"user": "", "pass": ""}'

Listar folders (Autenticado):

      curl -v http://localhost:3000/list_folders?path="*" \
          -H "Authorization: Bearer "

Listar files (Autenticado):

      curl -v http://localhost:3000/list_files?path="*" \
           -H "Authorization: Bearer "

Eliminar folder (Autenticado):

      curl -X POST http://localhost:3000/delete_folder \
           -H "Content-Type: application/json" \
           -H "Authorization: Bearer " \
           -d '{"path": ""}'

Eliminar file (Autenticado):

       curl -X POST http://localhost:3000/delete_file \
           -H "Content-Type: application/json" \
           -H "Authorization: Bearer " \
           -d '{"path": ""}'

Edicion (Autenticado):

        curl -v -X POST http://localhost:3000/edit_element \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer " \
            -d '{"path": "", "new_path": ""}'

Crear folder (Autenticado):

        curl -X POST http://localhost:3000/create_folder \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer " \
            -d '{"path": ""}'

Subir archivo (Autenticado):

        curl -X POST http://localhost:3000/upload_file \
             -H "Authorization: Bearer " \
             -F "name=" \
             -F "route=" \
             -F "file=@/"

Autor