UbuntuOne

Differences between revisions 11 and 94 (spanning 83 versions)
Revision 11 as of 2009-06-08 15:33:08
Size: 11135
Editor: c-69-243-46-199
Comment:
Revision 94 as of 2014-04-19 07:01:37
Size: 3053
Editor: bacc97c1
Comment: Ubuntu one will be discontinued...
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
'''Ubuntu One''' is a blanket name for what is destined to be a suite of online services from Canonical. ''''Ubuntu One service will be discontinued on June 2014. If you have files on Ubuntu one you should save them on your computer before this date to avoid losing data.''''
Line 3: Line 3:
So far there is only one service and that is a Dropbox-like file-exchange/synchronisation system.
Line 5: Line 4:
<<TableOfContents(6)>>
= Invitations =
To get access to Ubuntu ONE(TM) go to https://ubuntuone.com and log in with your Launchpad account. This will generate an invitation request. Alternatively ask someone already with an account to share something with you.

The IRC channel at [[irc://irc.freenode.net|#ubuntuone]] on `irc.freenode.net` is a good place to ask questions.
<<Include(UbuntuOne/MenuBar)>>
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 1em 0em 0em 1em; padding: 1em;"><<TableOfContents(2)>>||
Line 12: Line 8:
 * The log file is at `~/.cache/ubuntuone/log/syncdaemon.log`
 * There is as yet no indicator of the remaining time/bytes.
 * The sync algorithm handles partial downloads of files and resumes from interruptions.
 * If a file changes the entire file is re-copied; deltas are planned but not yet implemented.
 * At the moment it will only sync files in the ~/Ubuntu One folder, but it could do more in future, perhaps synchronising /var/www from a server for example.
 * The plans are 2GB of free storage and a paid for 10GB option. More than 10GB is not currently available.
 * The data is stored on the Amazon S3 servers in both the UK and the USA.
[[https://one.ubuntu.com/|Ubuntu One]] is a suite of online services from [[http://canonical.com/|Canonical]]. The service enables users to store and sync files online and between computers and share files and folders with others using file synchronization. Unlike the traditional storage application and service, what sets Ubuntu One apart is additional features like the integration with other services. Ubuntu One offers integration with Evolution for syncing contacts and with Tomboy for notes due to the access to the local CouchDB instance. Further possibilities include the capability of editing the contacts, as well as the Tomboy notes, online via the Ubuntu One Web interface.
<<BR>>
Line 20: Line 11:
=== Areas needing extensive testing ===
Putting files in and out whilst synchronising
== News&Information ==
There are many ways to keep learn about what Ubuntu one is up to and stay in touch:
Line 23: Line 14:
Interrupted synchronisations  * '''[[http://voices.canonical.com/ubuntuone/|Ubuntu One blog]]'''
 * '''[[http://twitter.com/UbuntuOne|Twitter]]'''
 * '''[[http://identi.ca/UbuntuOne|Identi.ca]]'''
 * '''[[http://facebook.com/ubuntuone|Facebook]]'''
Line 25: Line 19:
Deletions == FAQs ==
 * '''[[https://one.ubuntu.com/help/faq/|Ubuntu One FAQs]]'''
Line 27: Line 22:
Copy the ~/Ubuntu One folder or some part of it from one computer to another via sftp or otherwise and let U1 pick up synchronisation == SupportOptions ==
Ubuntu One’s support options can be found at the [[https://one.ubuntu.com/support|Ubuntu One web site]].
Line 29: Line 25:
Conflicts == Tutorials ==
We have prepared some [[https://one.ubuntu.com/help/tutorial/|tutorials]] on a variety of topics to help Ubuntu One users up and running.
Line 31: Line 28:
=== Reporting bugs ===
You may be requested to submit part of your log file. Please bear in mind this contains filenames when posting a public bug report or posting on IRC.
== TechnicalDetails ==
For a detailed and technical explanation of some of the pieces that make Ubuntu One click [[ UbuntuOne/TechnicalDetails | here]].<<BR>>
<<BR>>
“Ubunet” was the original codename for the online services initiative (the Canonical department itself is called “Online Services”), and is the name of the Launchpad project encompassing the backend components (there is also a “[[https://launchpad.net/~ubuntuone-control-tower|control tower]]” group which is used when landing branches).
Line 34: Line 33:
The command A detailed description of all the options of '''u1sdtool''' is available [[/u1sdtool|here]].
Line 36: Line 35:
 `tail -n 100|pastebinit` == Contribute ==
There are many ways you can contribute to the Ubuntu One project. Triaging bugs, uploading patches, answering questions on Launchpad are just a few of things you can do to help make Ubuntu One great.
Line 38: Line 38:
will put the last 100 lines of your logfile on pastebin and give you a URL suitable for discussing on IRC If you are interested in Triaging Bugs see our [[ UbuntuOne/Contribute | Bug Workflow.]]
Interested in fixing bugs? our info on [[UbuntuOne/Contribute | Ubuntu One Packaging]] and [[UbuntuOne/Contribute | Code and Licensing]] might be of interest to you.
Line 40: Line 41:
--------------------------------------

= Technical details =
 * ''Details as viewed by an outsider. Blame sladen for E&OE and for the insistence on using cute names.''

As of 2009-06-08, these are:

 * '''Storage''': remote storage

Because of the fuzzy nature of the "Ubuntu One" branding and because of the long-winded names of the components; this document uses unique, generic names to ''succinctly'' describe each of the components and layers. You can find a table mapping these simple names to download packages and URLs at the bottom. (See the "storagefs" section for just how long-winded and inconvenient these actual names can get).

"Ubunet" appears to be the name of the whole project/development team, as can be found in Launchpad (in addition to a "control tower" team group).

== "Storage" ==
This provides 2GB-10GB of remotely accessible disk space stored on Amazon S3. Rather than using an existing protocol (eg. FTP, SFTP, NFS, Webdav) access to this remote disk space is via a not-invented-here communication protocol called "u1storage".

The system is intented to be for ''mirroring'' of content, then keeping each of those mirrors synchronised.

It is possible to share a directory view (called a "Share") between multiple near-instantaneous users and multiple near-instantaneous connections. There is a delay because a file must be completely uploaded before the changes can start to be shared. The heavy duty backend storage is ultimately out-sourced to [[http://aws.amazon.com/s3/|Amazon S3]] (Amazon Simple Storage Service).

At a high-level, ''Storage'' has been compared to [[http://www.getdropbox.com/install?os=lnx|Dropbox]]. In June 2009, Mandriva have produced something similar called [[http://www2.mandriva.com/mdvbackup/|mdvbackup]], (branded as "Mandriva Click'n'Backup").

''A previous, possibly unused(?), codename for this facility appears to have been "Hammertime".''

=== updown ===
This is a HTTP/web-browser interface to view files held in the storage service. It allows viewing of files, and uploading and downloading. Collections of files (Shares) held by the user are displayed under "My Files". It is universal and cross-platform. An advantage is that it allows direct "cherry picking" of individual files, without waiting for synchronisation first. (Long term personal hunch; I suspect people will just poll/screenscape the updown interface, a la GmailFS).

Going via the browser appears to be "closest to bare metal" interface. It apparently does not use the "u1storage" protocol for access, so is probably talking straight to Amazon S3.

There is one implementation, which is proprietary. Little is known, but an instance of it runs at https://www.ubuntuone.com/files/ (subscribers only).

=== u1storage ===
This protocol is built on top of Google [[http://code.google.com/apis/protocolbuffers/docs/overview.html|Protocol Buffers]] (a sort of fast binary XMLish schema language). This abstraction is to allow extension of the `u1storage` protocol with breaking compatibility.

The intention of the protocol is to enabling synchronisation by mirroring of content. The protocol itself uses SHA-1 hashes as identifiers for directory objects and their contents (files). Requests are always initiated from the client end. The first versions does not support any kind of delta-optimisation and each object (file) must be sent in its entirety.

Currently there is only one implementation, it written in Python and called `python-u1storage` (AGPLv3+copyright assignment required). The `.proto` descriptions (AGPLv3+assignment) can be used as starting points for other language implementations.

==== storagefsd ====
This is the fuzzy term for a monolithic(?) deamon running on the server `fs-1.ubuntuone.com` (174.129.241.144, currently an Amazon EC2 virtual machine instance). It accepts incoming SSL/TLS wrapped `u1storage` connections on port 443. Note that although port 443 (HTTPS) is used to allow passage through firewalls, the protocol has nothing to do with HTTP.

Storagefsd sends a client connected via the u1storage protocol unsolicited updates of any hash reference that have been updated, so that the other end can re-download the changed objects.

Currently there is one implementation, which is proprietary. This links to `python-u1storage`. That implemetnation is started by `/etc/init.d/ubuntuoneapiserver` which probably executes something like `/usr/bin/env python .../canonical/ubuntuone/storage/server/server.py`. <small>(Doesn't exactly trip off the tongue...).</small> It seems to save the partially uploaded files to a temporary directory; then presumably indexes/moves them off to Amazon S3 where the real storage is.

==== u1sync-agent ====
This is a per-user daemon run on each desktop computer and has no user interface. It runs in the background and exposes a DBus API interface. The agent does the actual work of deciding what to sychronise in which direction and handles doing so. Automatic resumption and partial uploading/downloading is supported, these files will be visible as `filename.partial` until the transfer has completed, when they are required to the proper filename.

By default, one fold called `~/Ubuntu One/` is automatically created and configured for mirroring. Changes to this fold (and any others added) are watched using inotifiy. Synchronisation meta-data about which directories are being mirrored and what their is stored in `~/.cache/ubuntuone`. When remote content has changed, the agent acts on the incoming unsolicated notification sent by storagefs and starts downloading.

Authenication is via OAuth. Passwords are securely stored via the `gnome-keyring` service.

There is one implementation, written in Python (GPLv3), this may also be referred to as ''chicharra''. It is started by `/usr/share/dbus-1/services/com.ubuntuone.SyncDaemon.service` and exposes its DBus interface under `com.ubuntuone.SyncDaemon`. Logs files are kept in `~/.cache/ubuntuone/log/syncdaemon.log`.

===== gnome-u1sync-applet =====
Tray icon to control the behaviour of the a running `u1sync-agent` instance, by communicating over the DBus interface. Provides a constant status update on "what's happening".

There is one implementation, which is written in Python (GPL+copyright assignment hassle status unknown).

===== u1sync-tool =====
Command line utility to control the behaviour of a running `u1sync-agent` instance. The tool does not perform any actions directly, but sends messages to the running agent.

There is one implementation, which is written in Python (GPLv3).

===== libnautilus-u1sync =====
An extension (plugin) for the default GNOME file-browser called Nautilus to adds a status icon/button. This can send connection and disconnection requests to a running `u1sync-agent` instance. Additions directories (Shares) can be nominated for sharing using a new right-click context menu.

There are two implementations. One currently being shipped, written in Python (GPLv3), and one written in C (GPLv3) under development as of 2009-06-08.

==== u1ftp ====
This is a command line and test utility tool more akin to `bzr branch/push` or `git clone/push` (version control systems). It is ''incompatible'' with the rest of the u1sync-agent infrastructure. Synchronisation metadata is stored in a hidden directory at the root folder of each share named `$dir/.ubuntuone-sync`.

Apparently, this utility has concepts borrowed from Amazon's [[http://s3.amazonaws.com/ServEdge_pub/s3sync/README.txt|s3sync]] tool.

There is one implementation, which is written in Python (GPLv3).

==== fuse-u1storage ====
Apparently there was a FUSE (Filesystem in User Space) implementation, but it was "a disaster", so probably got canned. No details on whether this worked via mirroring, or simply exposing/mounting the remote filesystem locally.

There are zero current implementations.

== Name mappings ==
|| '''This document''' || '''Canonical name''' || '''Bugs''' || '''Source''' ||
|| updown || updown || [[https://bugs.launchpad.net/ubunet/+bugs|ubunet]] || ??, n/a ||
|| storagefsd || ubuntuoneapiserver || [[https://bugs.launchpad.net/ubunet/+bugs|ubunet]] || Python, n/a ||
|| u1storage || ubuntuone-storage-protocol || [[https://bugs.launchpad.net/ubuntuone-storage-protocol/+bugs|ubuntone-storage-protocol]] || Python, AGPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk/changes|u-s-p/trunk]] ||
|| u1sync-agent || ubuntuone-syncdaemon || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 ||
|| u1sync-tool || u1sdtool || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 ||
|| gnome-u1sync-applet || ubuntuone-client-applet || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 ||
|| libnautilus-u1sync || ubuntuone-nautilus || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python/C, GPLv3 ||
|| u1ftp || u1sync || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 ||
|| fuse-u1storage || ?? || ?? || ??, n/a ||
Interesting projects using Ubuntu One and related technologies can be found [[UbuntuOne/ThirdPartyProjects|here]].

'Ubuntu One service will be discontinued on June 2014. If you have files on Ubuntu one you should save them on your computer before this date to avoid losing data.'

Introduction

Ubuntu One is a suite of online services from Canonical. The service enables users to store and sync files online and between computers and share files and folders with others using file synchronization. Unlike the traditional storage application and service, what sets Ubuntu One apart is additional features like the integration with other services. Ubuntu One offers integration with Evolution for syncing contacts and with Tomboy for notes due to the access to the local CouchDB instance. Further possibilities include the capability of editing the contacts, as well as the Tomboy notes, online via the Ubuntu One Web interface.

News&Information

There are many ways to keep learn about what Ubuntu one is up to and stay in touch:

FAQs

SupportOptions

Ubuntu One’s support options can be found at the Ubuntu One web site.

Tutorials

We have prepared some tutorials on a variety of topics to help Ubuntu One users up and running.

TechnicalDetails

For a detailed and technical explanation of some of the pieces that make Ubuntu One click here.

“Ubunet” was the original codename for the online services initiative (the Canonical department itself is called “Online Services”), and is the name of the Launchpad project encompassing the backend components (there is also a “control tower” group which is used when landing branches).

A detailed description of all the options of u1sdtool is available here.

Contribute

There are many ways you can contribute to the Ubuntu One project. Triaging bugs, uploading patches, answering questions on Launchpad are just a few of things you can do to help make Ubuntu One great.

If you are interested in Triaging Bugs see our Bug Workflow. Interested in fixing bugs? our info on Ubuntu One Packaging and Code and Licensing might be of interest to you.

Interesting projects using Ubuntu One and related technologies can be found here.

UbuntuOne (last edited 2014-04-19 07:01:37 by bacc97c1)