We are please to release filevault into the public domain. This module allows programmers to easily create and maintain large and complex directory trees. The LinkPeek API uses this module heavily!
The latest documentation and verison live here: [sourcecode]
A Vault will:
- Create a directory tree of custom depth
- Spreads files out which keeps CLI snappy when traversing the tree
- Scale to hundreds of thousands of files
- Obfuscate directory paths and filenames
how to install
Setuptools:
easy_install filevault
Pip:
pip install filevault
how to use
How to create a default Vault object:
from filevault import Vault
v = Vault()
You may (and should) customize the Vault instance. Here are the arguments:
- vaultpath
- Where should the tree be created? Defaults to 'vault' in pwd.
- depth
- How deep should the tree span? Defaults to 3 directories deep.
- salt
- Add a custom salt for a unique and more secure tree, defaults to 'changeme'
Another custom example:
from filevault import Vault
v = Vault( vaultpath="/tmp/for-test", depth=2, salt="sugar" )
Now that we have a Vault object named v, we may review its two methods:
- create_filename( seed, ext='' )
- Create a valid vault filename seeded with input. Optional extension.
- create_random_filename( ext='' )
- Create a valid vault filename seeded with random input. Optional extension.
Here is a full example:
# import Vault class
from filevault import Vault
# create vault object named v, with custom path, depth, and salt
v = Vault( vaultpath="/tmp/for-test", depth=2, salt="sugar" )
# print a valid vault filename with extension
print v.create_filename( "my-first-file", ".png" )
# result:
# 3/9/3993817d4f9b3867c6db29b23c9d2ff9bb8a87d89426002adbb6ed34289d9e32.png
print v.create_filename( "my-first-file", ".png" )
# Same result:
# 3/9/3993817d4f9b3867c6db29b23c9d2ff9bb8a87d89426002adbb6ed34289d9e32.png
# print a random valid vault filename without extension
v.create_random_filename()
# result:
# 6/1/6169d6ee0ac0bc63ab667fb94d9cc747df0c03596ac43e24a51b3517d74bdc42