通過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停掉,看看是否能訪問