2017 © Pedro PelĂĄez
 

library repo

Application permettant de stocker des livrables via une API en REST.

image

huge/repo

Application permettant de stocker des livrables via une API en REST.

  • Friday, September 5, 2014
  • by floorent
  • Repository
  • 1 Watchers
  • 0 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

HugeRepo

Télécharger v1.1.2, (*1)

Application permettant de stocker des livrables via une API en REST. Vous pouvez organiser votre stockage en fonction de votre organisation, par exemple : * multi-instances * dev. mobile (slave): instance Huge/Repo avec sa base Mongo * dev. desktop (slave): instance Huge/Repo avec sa base Mongo * master : instance Huge/Repo avec sa base Mongo et pointe vers les 2 slaves * une instance * master : instance Huge/Repo avec sa base Mongo, (*2)

Installation

  • TĂ©lĂ©charger la version d'HugeRepo
  • DĂ©compresser
  • Modifier la configuration src/main/resources/config.php pour pointer vers votre mongo
  • CrĂ©er un virtualhost qui pointe vers src/main/webapp
  • Plus d'informations dans la rubrique "Configuration"

Fonctionnalités

  • Api REST
    • GET : rĂ©cupĂ©rer le(s) livrables
    • POST : ajout le livrable
    • DELETE : supprimer le livrable
  • Stockage souple grĂące Ă  Mongo

Livrable

  • vendorName (obligatoire): Nom du vendor
  • projectName (obligatoire): Nom du projet
  • version (obligatoire): X.Y.Z (1.0.0-SNAPSHOT par exemple)
  • classifier (facultatif): dĂ©clinaison de votre livrable (dev, prod, ...)
  • sha1 (facultatif) : permet de rĂ©aliser une vĂ©rification cĂŽtĂ© serveur

Configuration

  • VirtualHost sur src/main/webapp
  • Module rewrite obligatoire
  • RĂ©pertoire log en Ă©criture pour www-data
  • src/main/resources/config.php
return array(
    // nom de l'instance master, slave1, slave2 ...
    'instance.name' => 'master',
    'mongo.server' => 'mongodb://localhost:27018',
    'mongo.dbName' => 'hugeRepo',
    'debug' => false,
    'memcache.enable' => true,
    'memcache.host' => '127.0.0.1',
    'memcache.port' => 11211,
    // liste des slaves
    'slaves' => array(
    /* 'http://slave1.fr' */
    ),

    'klogger' => array(
        'level' => 'warn',
        'path' => __DIR__.'/../../../log/'
    )
);

Ordonner votre stockage

  • PossibilitĂ© d'installer plusieurs dĂ©pĂŽts de livrables
    • master
      • Redispatch la rĂ©cupĂ©ration des livrables (GET du livrable)
    • slaves
  • Chaque instance est autonome (sa base mongo)
  • La seule diffĂ©rence entre master/slave, c'est que le dĂ©pĂŽt "master" permet de rĂ©cupĂ©rer un livrable sur un slave
  • Pour connaĂźtre l'instance utilisĂ©e : X-Powered-By: NOM_INSTANCE
  • Votre gestionnaire de dĂ©ploiement se base UNIQUEMENT sur le master

Ajouter un livrable

  • Path : /livrable
  • MĂ©thode : POST
  • ParamĂštres : attributs du livrable + paramĂštre "force" avec la valeur "1" pour forcer l'upload
  • Accept : application/json
  • Description
    • Ajout d'un livrable sur l'instance

Télécharger un livrable

  • Path : /livrable/{ID} ou /livrable/{vendorName}/{projectName}/{version}/{classifier}
  • MĂ©thode : GET
  • Accept : application/octet-stream ou /
  • Description
    • TĂ©lĂ©charge un livrable depuis l'instance courante ou depuis une autre instance

Rechercher

  • Path : /livrable/search
  • MĂ©thode : GET
  • Accept : application/json ou /
  • ParamĂštres en GET : vendorName, projectName, version, classifier
  • Description
    • Recherche * livrables sur l'instance courante

Supprimer

  • Path : /livrable/{ID}
  • MĂ©thode : DELETE
  • Description
    • Supprime un livrable sur l'instance courante

Authentification

  • DĂ©lĂ©guĂ© Ă  apache2

Limitations

  • Mongo pour le stockage
  • Non prise en charge de l'authentification

 Envoyer automatiquement votre livrable

  • curl -i http://hugerepo.fr/livrable/ -F file=@/var/www/pays_out.json -F vendorName="Huge" -F projectName="Toto" -F version="1.0.0" -H "Accept: application/json"

Télécharger

  • wget http://hugerepo.test.fr/livrable/53e998f75768bca60d9b4567

 Tests

  • VirtualHost sur le rĂ©pertoire /target/hugeRepo-dev/src/test/webapp
  • Variabiliser /src/test/resources/variables.ini
  • phing -f build.xml clean test

The Versions

05/09 2014

dev-master

9999999-dev

Application permettant de stocker des livrables via une API en REST.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Florent FREMONT

repository rest store binary livrable

05/09 2014

v1.1.2

1.1.2.0

Application permettant de stocker des livrables via une API en REST.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Florent FREMONT

repository rest store binary livrable

03/09 2014

v1.1.1

1.1.1.0

Application permettant de stocker des livrables via une API en REST.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Florent FREMONT

repository rest store binary livrable

23/08 2014

v1.1.0

1.1.0.0

Application permettant de stocker des livrables via une API en REST.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Florent FREMONT

repository rest store binary livrable

21/08 2014

v1.0.0

1.0.0.0

Application permettant de stocker des livrables via une API en REST.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Florent FREMONT

repository rest store binary livrable