-
Notifications
You must be signed in to change notification settings - Fork 5
Sharing Concept Direct Sharing
Note: This is part one (of three) of creating a concept for file identifiers. Part two can be found here, part three here.
Direct sharing, i.e. sharing files and directories on the path they are, requires a lot of work to be consistent
over all clients and sharers. See the following directory structures on Client1
resp. Client2
which belong to different users:
Client 1
========
|- dir11
| |
| |- innerDir11
| |
| |- innerDir12
| |
| |- file.txt
| |- sharedFile.txt (should be shared with Client2)
Client 2
=======
|- dir21
When trying to share the file sharedFile.txt
with Client2
, the whole directory tree up to the file has to be created. Having large, nested directories, such an approach will quickly become messy.
Another issue here is the moving of files. What if multiple files on different levels in the tree are shared with Client2
and then moved on Client2
to a non-existent directory (i.e. not shared directory) on Client1
? The whole creation of the target directories must be performed and merge procedures applied, if any element on the path to the directory already exists on Client1
.
Therefore, such a solution is not considered.
- Commons
- Persistence Layer
- Versioning Layer
- Event Aggregation Layer
- Network Layer
- Core (this repository)
- End-User Client