Web file sharing

Description

Provide a simple file sharing service that allows a user to share files with others with a basic level of confidentiality.

Requirements / constraints

Assumptions

Proposed solution

Workflow

Architecture

There are two machines:

There are three application servers:

How things work

The URL of the exported files has the following syntax http://<host:port>/<token>/<file-name>, where:

There are three disjoint file-system hierarchies (they can be different mount points, or folders on the same device, but they must not be in a parent-child relationship):

The "exporter" web server allows access only to paths respecting the rule above, disallowing listing at the root level.

The "manager" web server maintains the symlinks and metadata as described above, and based on authentication filters what files can be exported by each user.

Security

Preconditions:

Needed file-system privileges:

Authentication:

Miscellaneous:

Analysis:

Issues

Nice to have features

(The title actually translates as "never going to be implemented"...)