An agnostic, easy-to-use module for different file systems (Memory | local | Samba (SMB) | NFS | Amazon S3)
Project description
AFS - Agnostic File Storage
Goals and motivations
The purpose of this module is to offer an agnostic, easy-to-use module for different file systems (At present time, just local and SMB/CIFS). The initial use of this module was provide an easy path to translate local file systems operations to a network samba server.
Example of use
So, you can translate code like this:
if os.path.isdir('/tmp/token.txt'):
if not os.path.isdir('/tmp/results'):
os.mkdir('/tmp/results')
with open('/tmp/results/data.txt', 'wb') as f:
f.write('This is an example\n')
To something like this (which must work identical):
with afs.connect('temp') as fs:
if not fs.isdir('results'):
fs.mkdir('results')
fs.cd('results')
fs.save('data.txt', 'This is an example\n')
Usually you need to iterate a list of directories checking for the existence of the dir, create if needed, and then changing to the dir, for every directory::
dirs = ['media', 'public', '2016', 'sep', '14']
with afs.connect('static') as fs:
for dir in dirs:
if not fs.is_dir(dir):
fs.mkdir(dir)
fs.cd(dir)
# You can save the file now
Using the set_path
method make all this steps with one single call::
with afs.connect('static') as fs:
fs.set_path('media', 'public', '2016', 'sep', '14')
# You can save the file now
The entry temp
is defined in a configuration file, using
a format similar to windows .INI files, like this:
[temp]
kind: local
base: /tmp
We can now switch to another directory by just replacing the
temp
base entry to the desired base path, for example. More
interesting, you can change to a network SMB Server, modifying the
configuration file to:
[temp]
kind: smb
username: samba_user
password: samba_password
host: nas
domain: mycompany.com
service: test$
Things to do
-
Add more storage file systems: NFS, Amazon S3, SFTP
-
Improve security, nobody likes password stored as plain text in configuration files.
-
More tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for agnostic-file-store-0.4.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18150ad3db47a24126bb23b0552652d0b0a8521c433f242f7524da783887a23e |
|
MD5 | b687dc350c20dc491ac29d6502f7f590 |
|
BLAKE2b-256 | 67b3e476944b49f85737a2604037c259864f4521c55a9bec41b7b89919423463 |