SImple stoRAge serVER

Loquicom 4c5df22067 Merge pull request #1 from Loquicom/dependabot/npm_and_yarn/node/yargs-parser-13.1.2 2 年之前
node 4c5df22067 Merge pull request #1 from Loquicom/dependabot/npm_and_yarn/node/yargs-parser-13.1.2 2 年之前
php 885cf2e479 Formatage projet 5 年之前
.gitignore c62100b8b5 Deplacement regle gitignore pour node dans le gitignore de node 5 年之前
readme.md 470a9b310b Correction Readme 5 年之前

readme.md

Simple Storage Server

Spécification d'un serveur d'hebergement de fichier par http. Permet de stocker des fichier et de les rattacher à un utilisateur. L'API mise a disposition du serveur est décrite en dessous. Deux implémentation d'éxemple sont disponible, en nodejs et en php.

Réponse en cas d'erreur

Lors de l'utilisation de l'api si la requete est invalide le retour est de la forme suivante

{
    "success": false,
    "code": "number",
    "message": "string"
}

Les codes d'erreurs sont les suivants :

  • 01 : Requete invalide
  • 02 : Authentification incorrect
  • 03 : Utilisateur inconnu
  • 04 : Jeton invalide
  • 05 : Erreur serveur
  • 06 : Fichier introuvable
  • 07 : Utilisateur existant

Points d'éntrées

GET /authentication

Indique si le serveur necessite un mot de passe pour accèder aux fichiers

Reponse :

{
    "success": true,
    "authentication": "boolean"
}

POST /register

Inscrit un utilisateur sur le serveur

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "password": "string"
}

Reponse :

{
    "success": true
}

POST /login

Connexion de l'utilisateur et retourne un jeton de connexion. Le jeton de connexion est valide 12h00 après son émission.

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "password": "string"
}

Reponse :

{
    "success": true,
    "token": "string"
}

GET /token

Permet de tester la validitée d'un jeton émit lors de la connexion

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "token": "string"
}

Reponse :

{
    "success": true,
    "valid": "boolean"
}

GET /list

Liste les fichiers disponible pour l'utilisateur. La valeur token n'est necessaire que si l'authentification est activée.

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "token": "string"
}

Reponse :

{
    "success": true,
    "total": "number",
    "list": ["fileId1", "fileId2", "..."]
}

GET /{fileId}

Récupère un fichier. Remplacer {file} par l'id du fichier à récupèrer. La valeur token n'est necessaire que si l'authentification est activée.

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "token": "string"
}

Reponse :

{
    "success": true,
    "fileid": "string",
    "filename": "string",
    "data": "string"
}

POST /save

Sauvegarde un nouveau fichier. La valeur token n'est necessaire que si l'authentification est activée.

Le champ user correspond au nom de l'utilisateur et le champ data au contenue du fichier

Requete :

{
    "user": "string",
    "token": "string",
    "file": "string",
    "data": "string"
}

Reponse :

{
    "success": true,
    "fileid": "string",
    "filename": "string"
}

PUT /save/{fileId}

Sauvegarde un fichier. Remplacer {fileId} par l'id du fichier à sauvegarder. La valeur token n'est necessaire que si l'authentification est activée.

Le champ user correspond au nom de l'utilisateur et le champ data au contenue du fichier

Requete :

{
    "user": "string",
    "token": "string",
    "data": "string"
}

Reponse :

{
    "success": true,
    "fileid": "string"
}

PUT /rename/{fileId}

Renomme un fichier existant

Le champ user correspond au nom de l'utilisateur et le champ name au nouveau nom

Requete :

{
    "user": "string",
    "token": "string",
    "name": "string"
}

Reponse :

{
    "success": true,
    "fileId": "string",
    "filename": "string"
}

DELETE /{fileId}

Supprime un fichier. Remplacer {fileId} par l'id du fichier à récupèrer. La valeur token n'est necessaire que si l'authentification est activée.

Le champ user correspond au nom de l'utilisateur

Requete :

{
    "user": "string",
    "token": "string"
}

Reponse :

{
    "success": true
}