Proposal: We abolish double slashes.
When a container is first accessed, it is fully unpacked into cache, including its .metadata. If the container does not include a .metadata, we generate one. This allows users to do, for example, CHK at .../freenet-20060718.tgz/lib/freenet-ext.jar without having to insert a metadata redirect (there are of course size limits). The cache is a set of ephemerally encrypted, padded files. The files, including the metadata, are kept individually in an LRU. A metadata manifest is a metadata document which is a map of names to metadata documents. The latter can be container-internal redirects, which refer to a file inside the container; they can be redirects to any URI; they can be splitfiles, and particularly they can be manifests. Any and all access to files, even archive manifests (aka containers) occurs via metadata manifests. Metadata manifests are "directories". So: SSK at blah,blah/WhateverFlog/images/war/bomb.jpeg => Fetch SSK at blah,blah/WhateverFlog Is a splitfile, and a tar.bz2 manifest. Need the metadata; not in cache; fetch the splitfile; unpack into cache. Extract the metadata. Find "images" - is a manifest. Find "war" - is a manifest. Find "bomb.jpeg" - is "images/war/bomb.jpeg" inside the tar.bz2, is image/jpeg. Extract it, return it to the user. -- Matthew J Toseland - toad at amphibian.dyndns.org Freenet Project Official Codemonkey - http://freenetproject.org/ ICTHUS - Nothing is impossible. Our Boss says so. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/tech/attachments/20051026/29870967/attachment.pgp>
