huge / repo
通过REST API存储交付物的应用程序。
v1.1.2
2014-09-05 16:12 UTC
Requires
- php: >=5.3.3
- doctrine/cache: ~1.3.0
- huge/rest: ~1.0.3
- katzgrau/klogger: ~1.0.0
- psr/log: 1.0.0
Requires (Dev)
- guzzle/guzzle: 3.9.1
- phpunit/phpunit: 4.1.4
This package is not auto-updated.
Last update: 2024-09-24 07:22:10 UTC
README
通过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交付物)
- 从属
- master
- 每个实例都是自足的(其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