[tahoe-dev] zsh completer

Zooko O'Whielacronx zooko at zooko.com
Mon Jan 31 07:30:05 UTC 2011


On Tue, Jan 25, 2011 at 2:46 PM, James A. Donald <jamesd at echeque.com> wrote:
>
> Tahoe's globally unique filenames are long and incomprehensible.

Filenames are not globally unique in Tahoe-LAFS. This is a
misunderstanding that I've heard before. Let me see if I can explain
it better, and once I (or someone) hammers out a good explanation then
let's add it to the FAQ.

James, have you used Tahoe-LAFS yet? Here are some file names which
are emitted from the "tahoe ls" command. (This is an actual
cut-and-paste of my actual command-line input and output.)

$ tahoe ls
demowiki
klog
my_private_iCal
new_privwrite_audio
privwriteaudio
pubwritemusic
research
rolling_stone
scratch
subdir-for-Matt-Jadud
tahoelafs_deps
videos

$ tahoe ls -l klog/
-r--   86379 Dec 11 18:01 Map_of_Paths_Not_To_Take-thumb.jp2
-r--   49249 Dec 11 18:09 Map_of_Paths_Not_To_Take-thumb.jpg
-r-- 4651055 Dec 11 16:11       Map_of_Paths_Not_To_Take.jpg
-r--  908027 Jun 28  2010                          blog.html
-r--  152478 Jun 28  2010                           blog.xml
-r--    4724 Dec 01 23:40   button-compact-static-100x17.png
-r--  350104 Jun 28  2010                         empty.html

Filenames are not globally unique and can be whatever string you
choose. Caps are globally unique, but caps are more like inode numbers
than like filenames. Tahoe-LAFS offers the option of using caps
directly in the command-line instead of using filenames, but it is
optional.

For example the read-cap to the directory called "klog" in the
transcript above is
URI:DIR2-RO:ixqhc4kdbjxc7o65xjnveoewym:5x6lwoxghrd5rxhwunzavft2qygfkt27oj3fbxlq4c6p45z5uneq,
so the following command shows the same directory as the previous
command:

$ tahoe ls -l URI:DIR2-RO:ixqhc4kdbjxc7o65xjnveoewym:5x6lwoxghrd5rxhwunzavft2qygfkt27oj3fbxlq4c6p45z5uneq
-r--   86379 Dec 11 18:01 Map_of_Paths_Not_To_Take-thumb.jp2
-r--   49249 Dec 11 18:09 Map_of_Paths_Not_To_Take-thumb.jpg
-r-- 4651055 Dec 11 16:11       Map_of_Paths_Not_To_Take.jpg
-r--  908027 Jun 28  2010                          blog.html
-r--  152478 Jun 28  2010                           blog.xml
-r--    4724 Dec 01 23:40   button-compact-static-100x17.png
-r--  350104 Jun 28  2010                         empty.html

(Again, this is an actual transcript of my bash session.)

This is sort of like what you would get if your shell allowed (but did
not require) "ls --inode=10342" to list the directory stored in that
inode in your local filesystem.

This wouldn't be that useful for a local filesystem, but it is
potentially more useful for Tahoe-LAFS, since the word "klog" is
meaningful only within a certain context -- a certain directory -- but
the capability has the same meaning everywhere -- from any context on
any machine.

Again, this feature is optional. The first bash transcript above
includes no visible, in-lined capabilities and yet is a complete,
useful interaction.

Regards,

Zooko



More information about the tahoe-dev mailing list