Sample structure for sharing file information. # Example object hierarchy file -> metadata # MetaData Object secure hash of data list or dict for hashes? ``` { 'id': 'uuid', 'dc:author': 'example author', 'hashes': [ 'sha256:xxxx' ], 'hash': 'sha256:xxxx', 'length': 1234, 'uri': { 'https://www.example.com/a/path/filename.txt' } xxxmetadata } ``` # Location of file ``` { 'id': 'uuid5', 'uri': [ 'https://example.com/path/to/file', 'magnet:?xxx', 'ipfs:xxx' ] } ``` # Links to file from FS hostname + path link to base file Why not use a file URI w/ host part? There is no UUID host name How are these versioned? Are they? They need to be, via modified ``` { 'hash': 'sha256:xxx', 'hostname': 'server.example.com', 'fqpath': '/some/set/directories/and/filename.ext', 'modified_date': 'iso8601' } ``` # Archive file listing link to archive hash list of files name/handle in archive This is an immutable "fact", treat it differently? ``` { 'archivehash': 'sha256:xxx', 'files': [ [ 'archive/path/to/file.ext', 'sha256:xxx' ], ... ] } ``` # Links to file in torrent Maybe merge torrent into here, as a torrent is really an "archive" of the files, but just w/ a differnt lookup method, via torrent info hash (magnet link) vs file hash. torrent hash name of file in torrent if multi file torrent Note: that if the file is in an archive in a torrent, these change be chained. ``` { 'filehash': 'sha256:xxx', 'magnet_link': 'magent:xxx', 'fqpath': 'archive/path/to/file.ext' }