PUT http://localhost:8123/uri
- in: file contents
- out: file write cap
+ in: file contents
+ out: file write cap
+
+ Upload a file, using the data from the HTTP request body, and returning
+ the resulting URI as the HTTP response body. This does not make the file
+ visible from the virtual drive -- to do that, see section 1.h. below, or
+ the convenience method in section 2.a..
+
+ POST http://localhost:8123/uri?t=upload
- Upload a file, returning its URI as the HTTP response body. This does not
- make the file visible from the virtual drive -- to do that, see section
- 1.h. below, or the convenience method in section 2.a..
+ This action also uploads a file without attaching it to a virtual drive
+ directory, but can be used from an HTML form. The response is the file
+ write cap.
g. creating a new directory
(browsers do not know how to do PUT or DELETE). The file's contents and the
new child name will be included in the form's arguments. This can only be
used to upload a single file at a time. To avoid confusion, name= is not
- allowed to contain a slash (a 400 Bad Request error will result).
+ allowed to contain a slash (a 400 Bad Request error will result). The
+ response is the file read-cap (URI) of the resulting file.
POST $URL
This instructs the node to upload a file into the given directory, using a
mutable file (SSK) rather than the usual immutable file (CHK). As a result,
further operations to the same $URL will not cause the identity of the file
- to change.
+ to change. The response is the file write-cap (URI) of the resulting
+ mutable file.
POST $URL
return ctx.tag
- # this is a form where users can download files by URI
def render_download_form(self, ctx, data):
+ # this is a form where users can download files by URI
form = T.form(action="uri", method="get",
enctype="multipart/form-data")[
T.fieldset[
- T.legend(class_="freeform-form-label")["download a file"],
- "URI of file to download: ",
+ T.legend(class_="freeform-form-label")["Download a file"],
+ "URI to download: ",
T.input(type="text", name="uri"), " ",
"Filename to download as: ",
T.input(type="text", name="filename"), " ",
- T.input(type="submit", value="download"),
+ T.input(type="submit", value="Download!"),
+ ]]
+ return T.div[form]
+
+ def render_view_form(self, ctx, data):
+ # this is a form where users can download files by URI, or jump to a
+ # named directory
+ form = T.form(action="uri", method="get",
+ enctype="multipart/form-data")[
+ T.fieldset[
+ T.legend(class_="freeform-form-label")["View a file or directory"],
+ "URI to view: ",
+ T.input(type="text", name="uri"), " ",
+ T.input(type="submit", value="View!"),
+ ]]
+ return T.div[form]
+
+ def render_upload_form(self, ctx, data):
+ # this is a form where users can upload unlinked files
+ form = T.form(action="uri", method="post",
+ enctype="multipart/form-data")[
+ T.fieldset[
+ T.legend(class_="freeform-form-label")["Upload a file"],
+ "Choose a file: ",
+ T.input(type="file", name="file", class_="freeform-input-file"),
+ T.input(type="hidden", name="t", value="upload"),
+ T.input(type="submit", value="Upload!"),
]]
return T.div[form]
- # this is a form where users can create new directories
def render_mkdir_form(self, ctx, data):
+ # this is a form where users can create new directories
form = T.form(action="uri", method="post",
enctype="multipart/form-data")[
T.fieldset[
- T.legend(class_="freeform-form-label")["create a directory"],
+ T.legend(class_="freeform-form-label")["Create a directory"],
T.input(type="hidden", name="t", value="mkdir"),
T.input(type="hidden", name="redirect_to_result", value="true"),
- T.input(type="submit", value="create"),
+ T.input(type="submit", value="Create Directory!"),
]]
return T.div[form]