Overhaul the current filesystem to use content hashes

Registered by Marcus Boon

The goals of the new filesystem are:

* allow files to be stored within Mahara (as we do now).
* use a consistent and flexible approach for all file handling throughout Mahara
* track where files originally came from
* avoid redundant storage, when the same file is used twice
* fully support Unicode file names, irrespective of the capabilities of the underlying file system

Roadmap:
* Use sha-256 to calculate the content hash of files (this is because sha-1 collisions are feasible now)
* Changes to the database structure to enable use of the new file structure
* A migration/upgrade script to facilitate moving from the old file structure to the new one
* Backwards compatibility with the old file structure for plugins that are yet to be updated (potentially)

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Marcus Boon
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.