With files sent by the server via the file storage features, and not as part 
of workunits, when the project asks the client to upload a file, the upload 
URL is *added* to the list of URLs. So the file_info ends having the 
upload_when_present flag, and two URLs:

http://example.com/project/download/398/file1.zip
http://example.com/project_cgi/file_upload_handler

(I mentioned this in my giant "BOINC file storage features" message to 
boinc_projects)

With this change:
http://boinc.berkeley.edu/trac/changeset/18427
How does the client know which is the upload URL? Will it try to POST to the 
file1.zip URL?

[begin useless if-I-could-do-BOINC-from-scratch rant]

The problem is the current <url> element is used to give URLs, but they are 
handled in a completely different way depending on whether it's a download or 
an upload. That means the tag is ambiguous. For downloads, it's the URL of a 
file, and the client GETs it. For uploads, it's the URL of a program that 
accepts an upload, and the client POSTs custom protocol data to it.

Cleaner ways would have been:
- Use different tags for download and upload URLs, to remove the ambiguity. 
You can be sure it will never POST to a download URL, or try to GET from the 
file_upload_handler URL.
- Don't use a custom protocol; the same URL could be used to either GET or PUT 
data. Then, when I ask the client to download a file, I send it a 
data/file1.zip URL, and when I want it back, I tell it to upload, and it 
could PUT to that same URL.

[/useless rant]
_______________________________________________
boinc_dev mailing list
boinc_dev@ssl.berkeley.edu
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to