anyfs
AnyFS is a portable filesystem abstraction for Node. It aims to provide a consistent API for different file systems.
WARNING: AnyFS is under heavy development, things may change at any time!
Features
- Extensible with plugins
- Super portable with file system adapters
- Works well with Gulp (vinyl-fs plugin)
- API with Promise support
Adapters
AnyFS comes with following adapters.
- Dropbox - NPM: anyfs-dropbox-adapter
- FTP - NPM: anyfs-ftp-adapter
- AWS S3 - NPM: anyfs-s3-adapter
- Memory - Builtin, assess with
AnyFS.MemoryAdapter
Local: local file systemSFTPBaiduGITSVN
Plugins
- Core: builtin, basic filesystem support.
- glob: match files easily.
- vinyl-fs: vinyl-fs port, works well with gulp
Usage
var AnyFs = ;var FtpAdapter = ;var DropboxAdapter = ;var VinylFsPlugin = ;AnyFS; var fs1 = server: 'ftp.example.com' username: 'user' password: 'password'; var fs2 = key: 'appkey' secret: 'appsecret' token: 'token'; // Copy files across filesystems(requires the vinyl-fs plugin)fs1 ; // Promise style APIfs1 ; // callback APIfs;
API
Core API
Following APIs are basic file system APIs.
constructor(adapter, options)
The constructor accepts an adapter and an options object.
Common options:
- cwd: Current working directory.
metadata(path[, callback(error, metadata)])
Retrieves file and folder metadata.
Folder metadata:
"name": "dir1" "time": Date Object "is_dir": true
File metadata:
"name": "file1.txt" "time": Date Object "is_dir": false "size": 123 ...
If callback is not provided, a promise is returned.
list(path[, callback(error, list)])
Get contents of directory.
[
{
// metadata
},
...
]
mkdir(path[, callback(error)])
Create directory recursively.
If callback is not provided, a promise is returned.
delete(path[, callback(error)])
Delete file.
If callback is not provided, a promise is returned.
deleteDir(path[, callback(error)])
Delete directory recursively.
If callback is not provided, a promise is returned.
move(oldPath, newPath[, callback(error)])
Move file or directory to a new place.
Parent folder of newPath
is created automaticly.
If callback is not provided, a promise is returned.
writeFile(path, content[, options][, callback(error)])
Write file content, will try to create parent directory.
If callback is not provided, a promise is returned.
readFile(path[, options][, callback(error, data)])
Read file content.
If callback is not provided, a promise is returned.
createWriteStream(path[, options])
Create write stream.
createReadStream(path[, options])
Create read stream.
Extra API
Extra APIs are supported by plugins
Create Custom Adapters
Create Plugins
Acknowledgement
Inspired by Flysystem