Commit Graph

93 Commits

Author SHA1 Message Date
Brian Warner
db3f11648c webish: implement 'PUT /uri' (to create anonymous files) 2007-09-05 17:12:27 -07:00
Brian Warner
5946985c07 add a provisioning utility page which shows necessary storage space and transfer rates for grids of various sizes 2007-08-26 23:44:24 -07:00
Brian Warner
0a39430730 webish: strip leading/tailing whitespace from user-provided filenames, to avoid confusion 2007-08-25 12:05:24 -07:00
Brian Warner
44db5fd8a2 webish: strip leading/tailing whitespace from user-provided URIs 2007-08-25 12:05:06 -07:00
Zooko O'Whielacronx
427bf2cdc9 change name of the query "allow_local_access()?" to "local_access_is_allowed()"
So as to avoid confusing it with the setter method  
"allow_local_access(allowed=True)".
2007-08-22 10:32:00 -07:00
Brian Warner
3e1c417f81 webish: modify JSON to match zooko's proposed API changes in #118 2007-08-23 13:00:39 -07:00
Brian Warner
f3353ee5e4 web: replace FILE links with /uri -based ones, to prevent an XSS attack against the secret vdrive URI contained in the current URL 2007-08-22 17:35:01 -07:00
Brian Warner
4de5767c98 web: remove /vdrive/private, replace with a start.html file that points at the /uri/PRIVATE_URI, to prevent XSRF attacks 2007-08-22 14:54:34 -07:00
Brian Warner
ee6a6c79fa webish.py: allow users to delete (but not create) empty-named files. Closes #94. 2007-08-15 23:14:05 -07:00
Brian Warner
c1da0c11bc webish: implement replace= for POST commands 2007-08-15 15:21:38 -07:00
Brian Warner
1752c9e29e webish: implement replace= for PUT commands 2007-08-15 13:22:23 -07:00
Brian Warner
179d5462c0 webish: look for when_done= in POST fields as well as queryargs. Closes #101.
We need to look in the fields because that's how we build the mkdir/upload
forms. Without this, uploading or creating directories would leave us on a
page that had just a URI, instead of something actually useful to a human.
2007-08-13 17:45:02 -07:00
Brian Warner
6c6c62037d fix pyflakes warnings from recent b32decode change 2007-08-12 16:33:51 -07:00
Zooko O'Whielacronx
42f8e57416 don't over-encode the nodeid many times with ascii-encoding 2007-08-12 10:29:38 -07:00
Brian Warner
2f5a27316f webish: localfile=/localdir= are now disabled by default, a special switch is required to enable them 2007-08-10 18:21:22 -07:00
Brian Warner
9281a0aedc webish: reduce POST memory footprint by overriding http.Request
The original twisted.web.http.Request class has a requestReceived method
that parses the form body (in the request's .content filehandle) using
the stdlib cgi.parse_multipart() function. parse_multipart() consumes a
lot of memory when handling large file uploads, because it holds the
arguments entirely in RAM. Nevow's subclass of Request uses cgi.FieldStorage
instead, which is much more memory-efficient.

This patch uses a local subclass of Request and a modified copy of the
requestReceived method. It disables the cgi.parse_multipart parsing and
instead relies upon Nevow's use of FieldStorage. Our code must look for
form elements (which come from the body of the POST request) in req.fields,
rather than assuming that they will be copied into req.args (which now
only contains the query arguments that appear in the URL).

As a result, memory usage is no longer inflated by the size of the file
being uploaded in a POST upload request. Note that cgi.FieldStorage uses
temporary files (tempfile.TemporaryFile) to hold the data.

This closes #29.
2007-08-10 17:25:33 -07:00
Brian Warner
b6ff38e4c7 webish.POSTHandler: fix typo that meant we didn't look for 'name' in req.fields 2007-08-10 17:25:28 -07:00
Brian Warner
1d9a58977f uri: implement URI-processing classes, IFileURI/IDirnodeURI, use internally 2007-07-21 15:40:36 -07:00
Brian Warner
a7f04616bf webish: improve test coverage further 2007-07-17 12:28:29 -07:00
Brian Warner
3197e1d39b webish: improve test coverage of WebDownloadTarget 2007-07-17 12:16:45 -07:00
robk-org
920fed7f2a added unit test to webish's rename function
added unit tests to test various permutations of the rename function, and
some sanity checks on the rename-form function.

also added a guard to prevent '/' in from_/to_name in rename calls.
2007-07-16 17:05:01 -07:00
Brian Warner
56dcb814a8 webish: test error cases more thoroughly by looking inside the response text 2007-07-16 12:01:19 -07:00
Brian Warner
3f294d5597 webish: oops, handle POST without localfile= too 2007-07-16 12:00:54 -07:00
Brian Warner
f207f4a199 webish.py: disallow slashes in POSTed filenames. Closes #75. 2007-07-16 11:53:12 -07:00
Brian Warner
7bc031a81d webish.Directory: add a 'text/plain' link for files, to download as plaintext.
This is useful to view (e.g.) .py files that would otherwise be served as
some weird text/x-python that browsers will just want to save to disk.
2007-07-13 23:45:35 -07:00
Brian Warner
6e1ad64c9d webish.py: test that _get_or_create_directories fix I made a few hours ago 2007-07-13 22:19:16 -07:00
Brian Warner
a290205ade webish: handle PUTs to direct children of the root 2007-07-13 19:31:52 -07:00
robk-org
d65d02fa58 add a 'rename' button to the webish dir view
alongside the 'del' button is now presented a 'rename' button, which takes
the user to a new page, the 't=rename-form' page, which asks ther user for
the new name of the child and ultimately submits a POST request to the dir
for 't=rename' to perform the actual rename i.e. an attach followed by a
delete of children.
2007-07-12 16:53:54 -07:00
robk-org
15c3055176 fix bug in arg handling around 'delete' button in directory view
the code composing the form providing the 'delete' button in a dir
view was broken in that it tried to put some of the arguments into 
the url query, rather than as the form's post args.  worse, nevow
was kind enough to escape the querystring making it invalid.
2007-07-12 16:46:54 -07:00
robk-org
cacc9ac7b1 include the filename on URI-link urls for files
this is likely to induce browsers to do more useful things with the result
than they would when given neither content-type nor filename.  (i.e. they
can guess that a .jpg file is an image, even with a bogus content type)
2007-07-11 15:26:47 -07:00
Brian Warner
798b714bef webish.DirnodeWalkerMixin: comment out the code that demonstrates what we
would do if we could just use generators, since we don't use it.
2007-07-12 23:28:09 -07:00
Brian Warner
ba7e14a870 fix several methods to handle LIT URIs correctly, rather than assuming that all filenodes are CHK URIs 2007-07-12 16:17:49 -07:00
Brian Warner
ea3c3e6780 import simplejson directly, and remove our local copies of the component .py files from util/json* 2007-07-10 15:49:32 -07:00
Brian Warner
13e84526a1 webapi: normalized API: use t=upload or t=download when providing localdir= or localfile= 2007-07-10 13:24:10 -07:00
Brian Warner
5264559561 webish: cosmetic: fix missing whitespace in HTML 2007-07-10 10:33:19 -07:00
Brian Warner
0395ad76eb web: indent the JSON to make it easier for humans to read, but slightly larger 2007-07-08 00:23:23 -07:00
Brian Warner
72fc8c5cb8 web: use real JSON instead of the fake stubs
Also include the encoder portion of Bob Ippolito's simplejson-1.7.1 as
allmydata.util.json_encoder . simplejson is distributed under a more liberal
license than Tahoe (looks to be modified BSD), so redistributing it should be ok.
2007-07-08 00:17:11 -07:00
Brian Warner
bd8625076a web: remove t=XML, and other dead code 2007-07-07 22:55:15 -07:00
Brian Warner
159f8bfd50 web: improve test coverage 2007-07-07 22:47:18 -07:00
Brian Warner
135f08a518 web: remove more dead code 2007-07-07 22:20:03 -07:00
Brian Warner
8952114442 webish.py: remove dead code 2007-07-07 22:12:46 -07:00
Brian Warner
62e8528cc6 web: /uri/ must escape slashes, we use bangs for this 2007-07-07 22:06:52 -07:00
Brian Warner
fb40b55bc3 web: replace welcome-page download-URI form with new version 2007-07-07 22:06:22 -07:00
Brian Warner
5b0c9df14c web: survive bogus URIs when displaying sizes 2007-07-07 21:31:18 -07:00
Brian Warner
fe3c002842 web: show the root name of the vdrive 2007-07-07 21:31:02 -07:00
Brian Warner
e5482b5254 web: add a 'return to welcome page' link 2007-07-07 21:30:04 -07:00
Brian Warner
2adb773210 web: add when_done to all POST operations, use it from upload/mkdir/mount/delete forms 2007-07-07 21:17:48 -07:00
Brian Warner
0cb154f402 web: make 'delete' buttons work again 2007-07-07 20:46:30 -07:00
Brian Warner
b3f0293d50 web: change per-directory forms to match new POST scheme 2007-07-07 20:35:47 -07:00
Brian Warner
617a85df67 web: remove debug prints 2007-07-07 20:11:30 -07:00