[tahoe-dev] help: how should you tell a web browser what name to use for a file?
zooko
zooko at zooko.com
Sat May 10 12:04:14 PDT 2008
I wrote:
> Hm... Maybe that's not the *only* option. Here's one that I haven't
> previously considered: use "/@@/" to denote the end of the path and
> the beginning of the "name for the web browser to use".
By the way, just to be clear, and as Brian already mentioned, if we
choose the strategy in which you can give a special-for-the-web-
browser name only to capabilities that denote files, and not to paths
leading from a capability that denotes a directory to some child,
then we don't need any such special syntax -- whenever the first part
after the "/uri/" (or "/cap/", or "/named/") is a capability to file,
then the trailing "/name" always means the name the web browser
should use to save, and whenever the first part is a capability to a
directory, then the trailing "/name" always means the child of a
parent directory.
I am increasingly in favor of this option, which is 1.b from ticket
#221. It would look like this:
http://tahoebs1.allmydata.com:8123/named/URI%3ACHK%
3Awaqatup4yk7dyoosuyaux6vwzu%
3Alzoa4c2phsp3x7ws47bofsbihjm5avxqo35qrqscgqvtwrjotyra%3A3%3A10%
3A313227/whee.ogg
^-- a file denoted by its capability and which should be called
"whee.ogg" by your web browser
http://tahoebs1.allmydata.com:8123/cap/URI%3ADIR2%
3Azp3htohtvqpfjpcjzbt26g7lty%
3Avd7tcfgpyboqjrl73yld2pcj5yepi3fn3ulhbcqfkyfnzkcugj4q/whee.ogg
^-- a file denoted by being the child called "whee.ogg" by the
directory whose capability is in the URL
What I don't like about this is that people can easily confuse these
two, so I hereby offer 1.c, where you can specify a name just for the
browser to use only when the capability denotes a file, and the top-
level component is "/named/", and the name for the browser to use is
separated from the pathname by some special characters, perhaps like
this:
http://tahoebs1.allmydata.com:8123/named/URI%3ACHK%
3Awaqatup4yk7dyoosuyaux6vwzu%
3Alzoa4c2phsp3x7ws47bofsbihjm5avxqo35qrqscgqvtwrjotyra%3A3%3A10%
3A313227@@name=/whee.ogg
^-- a file denoted by its capability and which should be called
"whee.ogg" by your web browser
The "@@name=" is just to warn people that this is a different thing
from the directory-based URL above, and the "/" is just to trick the
web browser into using the trailing part as the suggested name.
The thing is that people basically never look into the middle of a
big ugly URL like that. Whether is says "uri" or "named" or
"helpimtrappedinaurlfactory" will usually make no difference to how
people interpret these URLs.
Hm. This also suggests that in the new capability encoding that
we're going to come up with (nice short capabilities, ticket #217),
we should put the character indicating whether this is a directory or
a file or whatever at the end of the capability rather than at the
beginning...
Regards,
Zooko
tickets mentioned in this e-mail:
http://allmydata.org/trac/tahoe/ticket/221 # (give proper filenames
on download)
http://allmydata.org/trac/tahoe/ticket/217 # (DSA-based mutable files
-- small URLs, fast file creation)
More information about the tahoe-dev
mailing list