Skip to content

It is a distributed file system that allows users to fill and query their csv files, using json, and share them. Golang + Microservices + RESTful ✨

Notifications You must be signed in to change notification settings

Elia-Renzoni/RenzoFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

RenzoFS

renzofs


RenzoFS is a distributed file system that allows users to query their file, using json written query.

The distributed service is written in Go (1.20) and uses REST as communication model, ensuring a remote access model, instead of upload-download access model.
The main functionalities of the distributed service are:

Functionality
Sign in user
Sign out user
Add user's friend
Create a remote directory
Create empty csv files
Query the files
Release file system usage statistics
Provide info about who, and when, queried files
File sharing

API Gateway

RenzoFS is a microservice-based distributed file system, with remote access model, so an API Gateway plays a crucial role,
RenzoFS API Gateway allows to choose the correct backend service by looking requests. Also provide distributed security control as Cirtuit Breaking.

Server-Side Discovery

Distributed Storage Service

this micro service handles access to remote files and directories, allowing you to store new changes, such as removing files or directories, or even editing and reading files.
Query Format and API endpoints:

  • Write (POST) :
{
  "query_type": "insert",
  "user":"elia",
  "file_name": "myFile",
  "query_content": ["value1", "44", "value2", "55.5"]
}

Endpoint

localhost:8080/insert
  • Read (GET) :
localhost:8080/read/{dirname}/{filename}/?id=...
  • Update (PATCH) :
{
  "query_type": "update",
  "user_name":"elia",
  "destination": "myFile",
  "query_content": {
    "ColumnName": ["id", "old", "new"],
    "ColumnName": ["id", "old", "new"],
    "ColumnName": ["id", "old", "new"]
  }  
}

Endpoint

localhost:8080/update
  • Delete (DELETE):
localhost:8080/delete/{dirname}/{filename}/?id=...&field=...
  • Create a new remote directory (POST):
{
  "dir_to_create": "...."
}

Endpoint

localhost:8080/createdir
  • Delete a remote directory (DELETE):
localhost:8080/deletedir/{dirname}
  • Get a file informations (GET):
localhost:8080/fileinfo/{dirname}/{filename}

Note that the structure of the file system starts from the root that is RenzoFS, so to move between the files and modify them was appropriate to change rempentinamente working directory

Statistic Service

the statistics service is contacted by clients to know the latest statistical information about their files. The informations are contained in the log file held by the remote storage service.

Log-in Log-out Service

About

It is a distributed file system that allows users to fill and query their csv files, using json, and share them. Golang + Microservices + RESTful ✨

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published