Skip to content

Litardo-Jardy/Uploader-Browser-Rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦀 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

About

API REST para gestión y upload de archivos construida con Rust y Axum. Incluye JWT authentication, manejo de folders y endpoints para file upload.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages