The Common Internet File System (CIFS) also known as Server Message Block (SMB) is a network protocol whose most common use is sharing files on a LAN. The protocol allows a client to access servers, files and printers on the LAN as though they were on the local machine.
Microsoft uses CIFS in all flavours of Windows to provide it's networking capabilities i.e. Shares, Network Neighbourhood. Unix/Linux also use CIFS via Samba and Apple has several clients and servers available, thus it's a fairly interopable protocol.
CIFS has a client and a server part. The server is probably more applicable to us as we could expose the repository as a CIFS server. This would theoretically mean that the repository would show up in the Network Neighbourhood and users would be able to map the repository as a normal Windows drive letter.
The client capabilities may also be useful as we could import content from an existing network share, for example.
There is an open source implementation of a CIFS client called jCIFS.
The client library provides programmatic access to CIFS servers allowing the following:
- Domains and workgroups
- Servers within a domain/workgroup
- Shares available on a server i.e. folders, printers
- Files and folders within a share
- File/Folder Manipulation (with appropriate authentication)
- Create files/folders
- Read/Write files
- Delete files/folders
- Test for existence
- Retrieve properties