FastDFS 是分布式文件存储系统。这个项目是FastDFS的NodeJS客户端,用来与FastDFS Server进行交互,进行文件的相关操作。我测试过的server版本是4.0.6。
github
https://github.com/ymyang/fdfs
安装
npm
install fdfs
使用
var fdfs = require('fdfs');
var fdfs = new FdfsClient({
trackers: [
{
host: 'tracker.fastdfs.com',
port: 22122
}
],
timeout:
10000,
defaultExt:
'txt',
charset:
'utf8'
});
以上是一些基本配置,你还可以自定义你的日志输出工具,默认是使用console 例如你要使用debug作为你的日志输出工具,你可以这么做:
var debug = require('debug')('fdfs');
var fdfs = new FdfsClient({
trackers: [
{
host: 'tracker.fastdfs.com',
port: 22122
}
],
logger: {
log: debug
}
});
上传文件
注:以下fileId为group + '/' + filename,以下的所有操作使用的fileId都是一样
通过本地文件名上传
fdfs.upload(
'e:/shou.jpg').then(function(fileId) {
console.log(fileId);
}).
catch(function(err) {
console.error(err);
);
上传Buffer
var fs = require('fs');
var buffer = fs.readFileSync('test.gif');
fdfs.upload(buffer).then(
function(fileId) {
console.log(fileId);
}).catch(
function(err) {
console.error(err);
);
ReadableStream
var fs = require('fs');
var rs = fs.createReadStream('test.gif');
fdfs.upload(rs).then(
function(fileId) {
console.log(fileId);
}).catch(
function(err) {
console.error(err);
);
其他一些options,作为第2个参数传入
fdfs.upload(
'test.gif', {
method:
'upload',
group:
'group1',
fileId:
'group1/M00/00/0F/wKgBeFXlZJuAdsBZAAPm5H9JxDA153.jpg',
size: 1024,
offset:
10240,
ext:
'jpg'
}).
then(function(fileId) {
console.log(fileId);
}).
catch(function(err) {
console.error(err);
);
下载文件
下载到本地
fdfs.download(fileId,
'test_download.gif').then(function() {
}).
catch(function(err) {
console.error(err);
);
下载到WritableStream
var fs = require('fs');
var ws = fs.createWritableStream('test_download.gif');
fdfs.download(fileId, ws).then(
function() {
}).catch(
function(err) {
console.error(err);
);
下载文件片段
fdfs.download(fileId, {
target: 'test_download.part',
offset: 5,
bytes: 5
}).
then(function() {
}).
catch(function(err) {
console.error(err);
);
删除文件
fdfs.del(fileId).
then(function() {
}).
catch(function(err) {
console.error(err);
);
获取文件信息
fdfs.getFileInfo(fileId).
then(function(fileInfo) {
console.log(fileInfo);
}).
catch(function(err) {
console.error(err);
);
文件的Meta Data
设置Meta Data
flag字段如果不传则默认是O
fdfs.setMetaData(fileId, metaData, flag).
then(function() {
}).
catch(function(err) {
console.error(err);
);
获取Meta Data
fdfs.getMetaData(fileId).
then(function(metaData) {
console.log(metaData);
}).
catch(function(err) {
console.error(err);
);
group信息
fdfs.listGroups().
then(function(groups) {
console.log(groups);
}).
catch(function(err) {
console.error(err);
);
storage信息
fdfs.listStorages(‘group1’).
then(function(storages) {
console.log(storages);
}).
catch(function(err) {
console.error(err);
转载于:https://www.cnblogs.com/zzsdream/p/11190072.html
相关资源:各显卡算力对照表!