946
edits
| Line 61: | Line 61: | ||
nothing has changed since the last upload. | nothing has changed since the last upload. | ||
The file to upload | There are two basic variants: full and delta. In the full upload case, when the backup executes and there are changes to upload, all bookmarks are exported and uploaded. In the delta case, the client uploads a snapshot, then keeps track of the etag of the snapshot and as long as it doesn't change only uploads changes, to a separate file. | ||
data, format | |||
The full upload method is simpler to implement, and ensures there is always a full, ready-for-restore copy of the bookmarks on the server. However, it makes the upload operation more bandwidth-expensive. | |||
The delta upload method is less bandwidth intensive but more complex. It would require either a "smart" server to combine the snapshot + deltas, or the client would need to be able to restore directly from the server. Manually importing snapshots + deltas is likely confusing and error-prone. | |||
The format of the file to upload would most likely be a JSON serialization of the bookmarks data. The specific format is TBD, but would probably be exactly (?) the same format used for local backups, replacing bookmarks.html. In the delta upload case, an additional delta format would be needed. | |||
==== Protocol ==== | |||
In order to simplify server requirements, we would limit ourselves to GET, PUT, and (optionally?) LOCK. GET and PUT are in HTTP 1.1, and LOCK is an optional WebDAV verb. | |||
Our specific needs will depend on which flavor of online backup we wish to implement (full dump vs deltas). In the full dump case, we'd only need PUT. For deltas we'd need locking as well. | |||
==== UE ==== | |||
One possibility is to have a minimalist preference pane or dialog with something like the following: | |||
<pre> | |||
|--------------------------------------| | |||
| [x] Enable online bookmarks backup | | |||
| | | |||
| Backup my bookmarks to this service: | | |||
| ------------- | | |||
| | Service 1 | | | |||
| | Service 2 | | | |||
| | Service 3 | | | |||
| ------------- | | |||
|--------------------------------------| | |||
</pre> | |||
By default it would be disabled. The user would click to enable online backup and select their preferred service. This idea depends on the 'registration hooks' discussed later. A more bare-bones approach without registration hooks could look like: | |||
<pre> | |||
|--------------------------------------| | |||
| [x] Enable online bookmarks backup | | |||
| | | |||
| Backup my bookmarks to this service: | | |||
| -------------------------- | | |||
| | http://my.service.url/ | | | |||
| -------------------------- | | |||
|--------------------------------------| | |||
</pre> | |||
Authentication would be prompted for when sync occurs, and the user could save their user & password in the password manager for convenience. | |||
=== Registration hooks === | === Registration hooks === | ||
edits