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>

Reply via email to