Sheepdog HTTP API
1、sheepdog中http simple storage中nginx后台配置文件模板留存:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
fastcgi_pass localhost:8000;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param HTTP_RANGE $http_range;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param REQUEST_URI $request_uri;
}
}
client_max_body_size 0;
}
2、sheepdog中HTTP API未实现POST操作,但已实现GET、HEAD、DELETE、PUT操作。
3、客户端可使用httpie(linux)或者libcurl等。
其中httpie安装(ubuntu)使用如下:
pip install --upgrade httpie
$ http PUT http://localhost/v1/mandy # create a user account named 'mandy'
$ http PUT http://localhost/v1/mandy/books # create a book container for 'mandy'
$ http PUT http://localhost/v1/mandy/movies # create a movie container for 'mandy'
$ http GET http://localhost/v1/mandy # to see what containers 'mandy' has
$ http PUT http://localhost/v1/mandy/books/yourbookname < yourbook # upload your book
$ http PUT http://localhost/v1/mandy/movies/yourmoviename < yourmovie
$ http HEAD http://localhost/v1/mandy/movies/ # Get the statistics of movie container
$ http GET http://localhost/v1/mandy/books/yourbookname > yourbook # Download your book
$ http DELETE http://localhost/v1/mandy/books/yourbookname # delete the book in the container
4、HTTP浏览器客户端调用PUT时,如若提示跨域问题,一般方案可使用JSONP解决;但在实践中,通过nginx中配置OPTIONS操作的返回值来实现,因为浏览器端发送HTTP PUT之前会发送OPTIONS进行校验。
附(编译sheepdog0.9.2):
编译过程中出现权限拒绝,请改(递归目录可使用-R)目录权限(为方便可改为777或+x)
sheepdog 0.9.2
sudo apt-get install libfuse-dev
sudo apt-get install yasm
apt-get install libcurl4-gnutls-dev
apt-get install nginx
apt-get install lighttpd
./autogen.sh
./configure --enable-http
make
make install
出现error while loading shared libraries:libfcgi.so.0
编辑文件 /etc/ld.so.conf添加一行:
------
/usr/local/lib/
------
然后刷新一下:
ldconfig
执行如下指令查看:
ldconfig -p | grep libfcgi.so.0
修改配置文件后开启服务
nginx -c /etc/nginx/nginx.conf
目前仅支持local和zookeeper 1.4.5 or plus
sheep -c local -r swift
collie cluster format -c 1
Sheepdog HTTP API的更多相关文章
- 分布式存储系统sheepdog
Sheepdog,是由NTT的3名日本研究员开发的开源项目,主要用来为虚拟机提供块设备. 其架构例如以下: 以下,我们将从架构.模块等几个方面来介绍下: 一.架构图 如上图: 採用无中心节点的全对称架 ...
- 【分布式存储系统sheepdog
】
Sheepdog,是由NTT的3名日本研究员开发的开源项目,主要用来为虚拟机提供块设备. 其架构例如以下: 以下,我们将从架构.模块等几个方面来介绍下: 一.架构图 如上图: 採用无中心节点的全对称架 ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
随机推荐
- Process学习
主要系统总结下我对进程的认识,以前理解得不够全面不够深入.本文肯定还不够好,当有新的认识新的理解后还会随时来更新.读完本文,下面几个问题便可理解清楚. 1.进程是什么? 2.为什么要有进程这个概念? ...
- (DP6.1.2.1)UVA 147 Dollars(子集和问题)
/* * UVA_147.cpp * * Created on: 2013年10月12日 * Author: Administrator */ #include <iostream> #i ...
- [000]socket通信--server和client实现的简单例子
在C语言中就学过scanf和printf,其实理解socket就跟这两个输入输出差不多,只不过是信息的传输而已. 1.TCP服务器端(server)的默认函数调用顺序: 按照上述的调用顺序,我们可以来 ...
- ExtJs Tree加载选项卡,选项卡加载页面不用iframe
点击树节点,自动加载选项卡对应的页面, 效果图: JS Code: 一.创建TreeStore var store = Ext.create('Ext.data.TreeStore', { root: ...
- mysql之sql语句细节问题汇总
一.mysql count distinct null 使用注意事项 1 用一个例子来讲解一个问题,现在又一个库表hello,表内容如下: id name 1 Null 2 ...
- java_实现接口的枚举类
package ming; interface GenderDoc { void info(); } enum Gender implements GenderDoc { // public stat ...
- php.ini 中开启短标签 <?=$?>
制参数: short_open_tag = On如果设置为Off,则不能正常解析类似于这样形式的php文件:<?phpinfo()?> 而只能解析<?phpphpinfo()?> ...
- 梭子鱼:APT攻击是一盘更大的棋吗?
随着企业对IT的依赖越来越强,APT攻击可能会成为一种恶意打击竞争对手的手段.目前,APT攻击目标主要有政治和经济目的两大类.而出于经济目的而进行的APT攻击可以获取竞争对手的商业信息,也可使用竞争对 ...
- TextView设置动态改变颜色
通过TextView的setTextColor方法进行文本颜色的设置, 这里可以有3种方式进行设置: 第1种:tv.setTextColor(android.graphics.Color.RED);/ ...
- IOS中如何显示带有html标签的富文本
NSString *strHTML = @"<p>你好</p><p> 这是一个例子,请显示</p><p>外加一个ta ...