通过Maven添加MogileFS的Java客户端驱动包
这里选用的是lastfm的moji,依赖包如下:
<dependency>
<groupId>fm.last</groupId>
<artifactId>moji</artifactId>
<version>1.4.0</version>
</dependency>
基本的使用方法如下:
1:连接服务器并配置moji的客户端
SpringMojiBeanmoji= new SpringMojiBean();
moji.setAddressesCsv("192.168.1.106:7001");
moji.setDomain("c1");
moji.initialise();
moji.setTestOnBorrow(true);
2:上传或者覆盖服务器上的文件
MojiFilemojiFile= moji.getFile("k2");
moji.copyToMogile(newFile("test.txt"), mojiFile);
当然也可以指定类名,如:
MojiFilemojiFile= moji.getFile("k2“,”c1”);
3:从服务器上下载获取文件
mojiFile.copyToFile(newFile(“myTest.txt"));
4:删除服务器上的文件
mojiFile.delete();
5:修改服务器上的文件名字
mojiFile.rename("newName");
6:获得服务器上文件的大小
mojiFile.length()
7:检查服务器上文件是否存在
if(mojiFile.exists()){……}
8:修改服务器上文件的类别
mojiFile.modifyStorageClass("newClass");
9:对文件key进行前缀模糊查询
List<MojiFile> files = moji.list("k");
for(MojiFilefile : files)
{ System.out.println("file=="+file); }
可以指定取出几个来,如:
List<MojiFile> files = moji.list("k",10);
10:获取文件的url路径
mojiFile.getPaths()
11:获取服务器上文件的属性
mojiFile.getAttributes()
通过它可以获取到很多文件的信息
12:流式上传文件到服务器
OutputStreamout = null;
try {
out = mojiFile.getOutputStream();
out.write("onlytest file".getBytes());
out.flush(); }
finally {
out.close();
}
13:流式从服务器下载文件
InputStreamin = null;
try {
in = mojiFile.getInputStream();
byte[] bs= new byte[in.available()];
in.read(bs);
System.out.println("thecontent===="+new String(bs));
} finally {
in.close();
}
MogileFS和Spring集成
MogileFS结合Spring是非常简单的
主要就是把跟服务器的连接和配置的相关属性,做成Spring的bean,然后 依赖注入到程序中就可以了。 基本的配置示例如下:
<bean id="moji" class="fm.last.moji.spring.SpringMojiBean">
<property name="addressesCsv" value="192.168.1.106:7001" />
<property name="domain" value="c1" />
<property name="maxActive" value="100" />
<property name="maxIdle" value="10" />
<property name="testOnBorrow" value="true" />
</bean>
MogileFS和Nginx集成
Nginx和MogileFS的结合可以有两种情况 一种是Nginx 做为 MogileFS 的前端客户端 另外一种是使用 Nginx 来替换 storage nodes 上 mogstored 中的 Perlbal
下载Nginx的MogileFS模块 地址:https://github.com/vkholodkov/nginx-mogilefs-module
重新编译Nginx并加入模块 命令示例如下:
./configure --prefix=/usr/common/nginx --with-http_stub_status_module --with-pcre=/usr/common/temp/pcre-8.34 --add-module=../nginx-mogilefsmodule-master
make
make install
修改Nginx的配置文件,加入访问MogileFS的代码
upstream mogilefs{
server 192.168.1.106:7001;
}
server {
......
location /download/ {
mogilefs_tracker mogilefs;
mogilefs_domain d1; //域
mogilefs_noverify on; //不用验证
mogilefs_pass{
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
MogileFS和Memcached集成
MogileFS支持使用Memcached,方式如下:
1:先安装Cache::Memcahced
./cpanm Cache::Memcached
2:启动Memcached
./memcached -d -m 10 -u root -l 192.168.1.106 -p 2222 -c 256 -P /tmp/memcached.pid
3:为MogileFS指定Memcached的Server
./mogadm --trackers=192.168.1.106:7001 settings set memcache_servers 192.168.1.106:2222
然后就可以测试了,尝试把mysql停掉,看看是否能访问