| 21 | * according to #683, a URI !!!identifies!!! a resource, but does not |
| 22 | necessarily provide enough information to actually access it (i.e. if you |
| 23 | have a URI and somebody pointed you at a file, you could confidently tell |
| 24 | them whether or not it was the right file, but if you only have the URI, |
| 25 | nyou might not be able to find the file without additional information). If |
| 26 | the cap has both identifying and location information, it's called a URL. |
| 27 | * Tahoe filecaps are meant to be URLs (they are intended to provide location |
| 28 | information), but to really make that work, you also need to define which |
| 29 | grid you're talking about. So far this has always been implicit, but that |
| 30 | has caused us problems. #403 talks about making an explicit "gridid" and |
| 31 | would provide a procedure to get from a gridid string to a set of storage |
| 32 | servers. The existing tahoe codebase could use the introducer FURL as a |
| 33 | gridid, if there were a good place to put it in the filecap (#683 touches |
| 34 | on this). |
| 35 | * from the point of view of a web browser, you also need a gateway service |
| 36 | (the Tahoe client node with a webapi frontend). The tahoe URLs that we've |
| 37 | been passing around so far always reference one of these, either by |
| 38 | assuming that {{{http://localhost:8123}}} is a suitable gateway or by |
| 39 | explicitly referencing an external gateway like testgrid.allmydata.org |
| 40 | (with deleterious effects on security and availability). I hope that our |
| 41 | new filecaps are defined independently of a webapi gateway used to access |
| 42 | them, and that we have a clear procedure for starting with a filecap and |
| 43 | a gateway HTTP URL, and ending with the contents of the file. |
| 44 | |
77 | | Appendcaps or "drop-box" writecaps might fall into this same space. |
| 104 | Appendcaps or "drop-box" writecaps might fall into this same space. But |
| 105 | remember that URIs should identify objects, not the action that you want |
| 106 | to do on it: a webapi scheme may use a POST/PUT/DELETE method, or append a |
| 107 | t=json adverb, or alternatively encode the verb/adverb into the HTTP url |
| 108 | (think {{{GET .../filecap/json}}} or {{{PUT unlinked/ciphertext}}}), but |
| 109 | these are independent of the underlying filecap. |