huge/repo

通过REST API存储交付物的应用程序。

v1.1.2 2014-09-05 16:12 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:22:10 UTC


README

下载v1.1.2

通过REST API存储交付物的应用程序。您可以根据您的组织来组织您的存储,例如

  • 多实例
    • dev. 移动(从属):包含Mongo数据库的Huge/Repo实例
    • dev. 桌面(从属):包含Mongo数据库的Huge/Repo实例
    • master:包含Mongo数据库的Huge/Repo实例,并指向2个从属实例
  • 一个实例
    • master:包含Mongo数据库的Huge/Repo实例

##安装

  • 下载HugeRepo版本
  • 解压缩
  • 修改src/main/resources/config.php配置文件,以指向您的mongo
  • 创建一个指向src/main/webapp的virtualhost
  • 更多详细信息请参阅“配置”部分

功能

  • REST API
    • GET:获取交付物
    • POST:添加交付物
    • DELETE:删除交付物
  • 通过Mongo实现灵活存储

交付物

  • vendorName(必需):供应商名称
  • projectName(必需):项目名称
  • version(必需):X.Y.Z(例如1.0.0-SNAPSHOT)
  • classifier(可选):交付物的变体(dev,prod等)
  • sha1(可选):允许在服务器端进行验证

配置

  • src/main/webapp上的VirtualHost
  • 必须启用module rewrite
  • www-data的写入日志目录
  • src/main/resources/config.php
return array(
    // nom de l'instance master, slave1, slave2 ...
    'instance.name' => 'master',
    'mongo.server' => 'mongodb://: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/'
    )
);

组织您的存储

  • 可以安装多个交付物存储库
    • master
      • 重新分发交付物的检索(GET交付物)
    • 从属
  • 每个实例都是自足的(其Mongo数据库)
  • master/from之间的唯一区别是“master”存储库允许从从属实例检索交付物
  • 了解所使用的实例:X-Powered-By:NOM_INSTANCE
  • 您的部署管理器仅基于master

添加交付物

  • 路径:/livrable
  • 方法:POST
  • 参数:交付物属性+带有值“1”的“force”参数,用于强制上传
  • 接受:application/json
  • 描述
    • 在实例上添加交付物

下载交付物

  • 路径:/livrable/{ID} 或 /livrable/{vendorName}/{projectName}/{version}/{classifier}
  • 方法:GET
  • 接受:application/octet-stream 或
  • 描述
    • 从当前实例或从其他实例下载交付物

搜索

  • 路径:/livrable/search
  • 方法:GET
  • 接受:application/json 或
  • GET参数:vendorName,projectName,version,classifier
  • 描述
    • 在当前实例上搜索 * 交付物

删除

  • 路径:/livrable/{ID}
  • 方法:DELETE
  • 描述
    • 在当前实例上删除交付物

身份验证

  • 委托给apache2

限制

  • Mongo用于存储
  • 不支持身份验证

##自动发送您的交付物

  • 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"

下载

##测试

  • 在/target/hugeRepo-dev/src/test/webapp目录上设置VirtualHost
  • 使/src/test/resources/variables.ini可变
  • phing -f build.xml clean test