UbuntuOne
|
Size: 16723
Comment:
|
Size: 5830
Comment: Moved some content to their own pages, Added a MenuBar, Made a FAQ
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| '''Ubuntu One''' is a suite of online services from Canonical. Current services include file sharing, contact syncing between Evolution and the web site, and Tomboy Web Syncing. <<TableOfContents(6)>> |
<<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 0em; padding: 1em;"><<TableOfContents(2)>>|| |
| Line 8: | Line 5: |
| * 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 will do more in future * The plans are 2GB of free storage and a paid for 50GB option. More than 50GB is not currently available. * The data is stored on the Amazon S3 servers in the USA. |
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 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>> == News and Information == |
| Line 16: | Line 9: |
| === Areas needing testing === | ubuntuone-client 1.0.3 has landed in Karmic-updates. If you are running Karmic and have not upgraded yet you can do so by going to (System > Administration > Update Manager). This new version of the client fixes many bugs you can veiw the changelog [[http://changelogs.ubuntu.com/changelogs/pool/main/u/ubuntuone-client/ubuntuone-client_1.0.3-0ubuntu1/changelog | here.]]<<BR>> == FAQ == === How do I resolve .u1confict files? === The way to resolve conflicts is to pick either the original file (if there is one) or the conflict file. You will rename the .u1conflict to replace the original or delete the .u1conflict. How do you select which file you want to keep? That really depends on the kind of files you have. .u1conflict[.NN] files are ignored by ubuntuone. So you can either leave them around or delete them if you dont need them. === Can I sync folders other than the Ubuntu One folder? === Currently you cannot sync files that are outside of the Ubuntu One folder [1]. We are going to add this functionality in the future. A similar feature request is to support synchronizing symlinks [2]. For example, when I create a symlink for ~/Documents in the Ubuntu One folder all the files in ~/Documents are synchronized online. |
| Line 18: | Line 16: |
| * TODO: Explain how to run the test suite and report results. * There is a nightly builds PPA, and we could use help testing these on 9.04, 9.10 and Lucid (10.04) |
[1] https://bugs.edge.launchpad.net/ubuntuone-client/+bug/385208 [2] https://bugs.edge.launchpad.net/ubuntuone-client/+bug/386019 === Can Ubuntu Server sync to One without a web browser? === We do not have a complete command line utility that will allow you to use Ubuntu One headless. We plan on eventually providing this but do not have that now. === Is there a way to let someone without a Ubuntu One account DL files? === For the 10.04 release we are planning to have precisely this feature, where you'll be able to "publish" any file that's stored in Ubuntu One so that it is accessible to anyone! === How many platform's does UbuntuOne support? === The client software has been written to make it extensible to other platforms.We are making changes to the way the client works to make it even easier for those in the community to port the client to any platform they wish. Currently non-Ubuntu OSs must use the web browser interface to access files, contacts, and notes. There is a Sprint planned for !PyCon to make a Windows client. There has also been a lot of discussion on !WebDAV support https://bugs.launchpad.net/ubuntuone-servers/+bug/396725 Here is a wiki page discussing other Linux Ports https://wiki.ubuntu.com/UbuntuOne/Ports !PyCon Sprint http://us.pycon.org/2010/sprints/projects/ubuntuone/ |
| Line 21: | Line 31: |
| === Reporting bugs === You may be requested to submit part of your log file. Please bear in mind this may contain filenames when posting a public bug report or posting on IRC. The command `tail -n 100 logfile | pastebinit` will put the last 100 lines of `logfile` on pastebin and give you a URL suitable for discussing on IRC. `grep -n -A 30 -B 10 ERROR syncdaemon.log |pastebinit` will hunt the syncdaemon.log file for an ERROR and will print the preceeding 10 lines and following 30 lines to the pastebin. Bugs can be reported on [[https://bugs.launchpad.net/ubuntuone-client|Launchpad]] -------------------------------------- = Support, Tutorials, and other platforms = == Support options == |
== Support Options == |
| Line 46: | Line 38: |
| Line 49: | Line 40: |
== Ubuntu One on machines other than Ubuntu == We love our community. People have been working hard on making Ubuntu One available in places other than Ubuntu machines. Take a look at the [[/Ports|list of ports]] for your distribution or operating system! = 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, the available services are: * '''Storage''': remote storage '''Note:''' Because the "Ubuntu One" branding is non-specific and because most of the components do ''not'' have succinct official names, we'll use shorter (unique) names to succinctly identify each of the components and layers. You can find a [[#Name mappings|table mapping these simple names]] to download packages and URLs at the bottom. (See the "[[#storagefs]]" section for just how long-winded and suboptimal these actual names can get). |
== Release Notes == The release notes for the latest Ubuntu One releases can be found [[/ReleaseNotes|here]]. == Technical Details == For a detailed and technical explanation of some of the pieces that make Ubuntu One click [[ UbuntuOne/TechnicalDetails | here]].<<BR>> <<BR>> Note: Because the "Ubuntu One" branding is non-specific and because most of the components do not have succinct official names, we'll use shorter (unique) names to succinctly identify each of the components and layers. You can find a table mapping these simple names to download packages and URLs [[ UbuntuOne/TechnicalDetails#Name Mappings | here]]. (See the "[[UbuntuOne/TechnicalDetails#storagefs | storagefs]]" section for just how long-winded and suboptimal these actual names can get). |
| Line 64: | Line 49: |
| == Release notes == The release notes for the latest Ubuntu One releases can be found [[/ReleaseNotes|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. |
| Line 67: | Line 52: |
| == Code and licensing == || '''Location''' || '''Licence''' || '''Contributing''' || '''Forking''' || '''Hidden re-use''' || || Desktop || GPLv3 || [[http://www.canonical.com/contributors|Contributor agreement]] || Yes || Yes || || Both || AGPLv3 || Contributor agreement || Yes || No || || Server || Proprietary || Canonical employees || No || No || For contributions to be accepted back and integrated into the tree, copyright on the changes must be assigned to Canonical. == Packaging == Packages should be versioned in the following way. Here, '''$VERSION''' refers to the version specified in configure.ac or setup.py. '''rN''' refers to the bzr revision number of the source being packaged, if not packaged from a release, and '''$BUILDID''' is the build string (aka. "package version", typically of the form 0ubuntu1 for packages in Ubuntu, for build strings for PPA builds, see https://help.launchpad.net/Packaging/PPA ), which may include the '''PPA''' index, and '''SERIES''' index as applicable for building in a PPA, or repository which is not the official distribution package repository. * Released tarball versions: $VERSION-$BUILDID * Snapshot from bzr (nightlies): $VERSION+rN-$BUILDID == "Storage" == This provides 2GB-50GB 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 an invented-here communication protocol called "u1storage". The system is intended to be for ''mirroring'' of content between computers, opportunistically synchronizing those mirrors when the user is online. 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"). During early development, the codename for this facility was "Hammertime". === General concepts === * There is a backing database which stores '''file objects''', '''directory objects''', and the '''BLOB objects''' (files) themselves. Drawing a comparison to a filesystem, the inodes are stored in a postgres database and the extents are stored in S3. * On the user's computer, a '''Share''' is a directory that is actively being mirrored. * When a file is modified, the complete new version is uploaded and saved in a BLOB. The '''file object''' is updated to point at the new BLOB (directories are not themselves changed for a simple overwrite operation). * A '''Subtree''' is a particular directory object, representing itself and all of its descendants. * A Subtree can be shared with other users. This is called a '''Share'''. * The View given to another user can be either '''read-only''', or '''read-write'''. * On connection, or reconnection, the '''u1sync-agent''' is responsible for spidering the full directory tree and identifying any changes on its own. * While connected, the u1sync-agent will receive '''unsolicited notifications''' of changed objects. Notifications are an optimisation. They allow for lower latency in synchronisation and they avoid unnecessary polling. * '''u1sync''' is an example of a simple one-shot client that ignores unsolicited notifications. ==== Authentication ==== An OAuth token is used for authentication between the desktop and server side infrastructures. This token is stored in the `gnome-keyring`. Actual login is done entirely within a web-browser, so that any password/user ID is kept within the website and not exported. There are no username/passwords stored by u1sync-agent. u1sync-agent calls out via DBus to `com.ubuntuone.Authentication`. This is currently answered by `gnome-u1sync-applet`. The applet queries the GNOME keyring, and if the token does not exist, it starts the OAuth/OpenID web-login process and has the user enter their credentials that way. The token is saved and also returned to the u1sync-agent. At the same time, there is some ACL fiddling to allow any (future) other UbuntuOne service programs to also access the token(s). ''Fixme: needs more and it still isn't clear in my head and so is unlikely to be accurate''. === updown === This is a backend librarian service. It listens for connections via HTTP and accepts the upload, or returns the download requested. It does not have a user-visible interface. It does not use the "u1storage" protocol for access, talking instead to the backend database and is therefore effectively a raw HTTP<->S3 gateway. There is one implementation, which is proprietary. Little is known, but an instance of it runs on an EC2 server at `updown.one.ubuntu.com`. You can get some HTTP headers from it: {{{ $ telnet-ssl -z ssl updown.ubuntuone.com 443 ... Server: PasteWSGIServer/0.5 Python/2.5.2 X-Bzr-Revision-Number: 1486 Via: 1.0 domU-12-31-38-00-4D-75.compute-1.internal }}} ==== webstorage ==== Also known as "web ui". This is a pretty HTTP/web-browser interface to view directory listings and files held in the user's storage service (and other Shares which they have access to). It is universal and cross-platform and allows viewing of files, plus uploading and downloading. The user's own files are displayed under "My Files" and incoming Shares from other users show up under "Shared With Me". An advantage is that it allows direct "cherry picking" of individual files, without waiting for a (potentially lengthy) synchronisation process to complete. There is one implementation, which is proprietary. Little is known, but an instance of it runs at https://one.ubuntu.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. ==== storagefs ==== This is the fuzzy term for a farm of twisted daemons running in EC2. They 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. Storagefs 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. You can connect to this instance with: {{{ $ telnet-ssl -z ssl fs-1.ubuntuone.com 443 ... 3 ubuntu one storage server revision 1486. }}} ==== 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 unsolicited notification sent by storagefs and starts downloading. Authenication is via OAuth. 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. Additional 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. ==== u1sync ==== This is a command line and test utility tool more akin to `bzr branch/push` or `git clone/push` (version control systems). Synchronisation metadata is stored in a hidden directory at the root folder of each share named `$dir/.ubuntuone-sync`. Note: '''It is ''incompatible'' with the rest of the u1sync-agent infrastructure.''' 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). == Name mappings == || '''This document''' || '''Suite''' || '''Canonical name''' || '''Bugs''' || '''Source''' || || updown || 1|| updown || [[https://bugs.launchpad.net/ubunet/+bugs|ubunet]] || Python, n/a || || webstorage || 1|| web ui || [[https://bugs.launchpad.net/ubunet/+bugs|ubunet]] || ??, n/a || || storagefs || 2,3 || ubuntuoneapiserver || [[https://bugs.launchpad.net/ubunet/+bugs|ubunet]] || Python, n/a || || u1storage || 2,3 || 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/files|u-s-p/trunk]] || || u1sync-agent || 2 || ubuntuone-syncdaemon || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/files|u-c/trunk]] || || u1sync-tool || 2 || u1sdtool || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/files|u-c/trunk]] || || gnome-u1sync-applet || 2 || ubuntuone-client-applet || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/files|u-c/trunk]] || || libnautilus-u1sync || 2 || ubuntuone-nautilus || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python/C, GPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/files|u-c/trunk]] || || u1sync || 3 || u1sync || [[https://bugs.launchpad.net/ubuntuone-client/+bugs|ubuntone-client]] || Python, GPLv3 [[http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-client/trunk/files|u-c/trunk]] || || fuse-u1storage || ? || ?? || ?? || ??, n/a || * ~-Components denoted '(N)' and having the same number are each part of the same suite.-~ == Security == More details on Ubuntu One security and privacy can be found [[/Security|here]]. = QA = == Troubleshooting Bugs == Visit [[UbuntuOne/Bugs|this page]] for notes on the most common bugs and tips on troubleshooting issues. == Bug Work Flow / Triage == The '''[[UbuntuOne/Bugs/WorkFlow|Ubuntu One bug work flow]]''' shows the typical flow of a bug from the time it is reported until it is worked on by a developer. |
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. |
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 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 and Information
ubuntuone-client 1.0.3 has landed in Karmic-updates. If you are running Karmic and have not upgraded yet you can do so by going to (System > Administration > Update Manager). This new version of the client fixes many bugs you can veiw the changelog here.
FAQ
How do I resolve .u1confict files?
The way to resolve conflicts is to pick either the original file (if there is one) or the conflict file. You will rename the .u1conflict to replace the original or delete the .u1conflict. How do you select which file you want to keep? That really depends on the kind of files you have. .u1conflict[.NN] files are ignored by ubuntuone. So you can either leave them around or delete them if you dont need them.
Can I sync folders other than the Ubuntu One folder?
Currently you cannot sync files that are outside of the Ubuntu One folder [1]. We are going to add this functionality in the future. A similar feature request is to support synchronizing symlinks [2]. For example, when I create a symlink for ~/Documents in the Ubuntu One folder all the files in ~/Documents are synchronized online.
[1] https://bugs.edge.launchpad.net/ubuntuone-client/+bug/385208 [2] https://bugs.edge.launchpad.net/ubuntuone-client/+bug/386019
Can Ubuntu Server sync to One without a web browser?
We do not have a complete command line utility that will allow you to use Ubuntu One headless. We plan on eventually providing this but do not have that now.
Is there a way to let someone without a Ubuntu One account DL files?
For the 10.04 release we are planning to have precisely this feature, where you'll be able to "publish" any file that's stored in Ubuntu One so that it is accessible to anyone!
How many platform's does UbuntuOne support?
The client software has been written to make it extensible to other platforms.We are making changes to the way the client works to make it even easier for those in the community to port the client to any platform they wish. Currently non-Ubuntu OSs must use the web browser interface to access files, contacts, and notes. There is a Sprint planned for PyCon to make a Windows client. There has also been a lot of discussion on !WebDAV support https://bugs.launchpad.net/ubuntuone-servers/+bug/396725 Here is a wiki page discussing other Linux Ports https://wiki.ubuntu.com/UbuntuOne/Ports PyCon Sprint http://us.pycon.org/2010/sprints/projects/ubuntuone/
Support Options
There are various support options available to Ubuntu One users:
File a bug or submit a feature suggestion: https://bugs.launchpad.net/ubuntuone-client/+filebug
Ask a question: https://answers.launchpad.net/ubuntuone-client/
Post to the Ubuntu One channel on Ubuntu Forums: http://ubuntuforums.org/forumdisplay.php?f=367
Join the discussion on IRC: #ubuntuone on freenode - Project team members may be available in this channel.
Receive account-related assistance (eg, billing): https://one.ubuntu.com/support/account-assistance/
Tutorials
We have prepared some tutorials on a variety of topics to help Ubuntu One users up and running.
Release Notes
The release notes for the latest Ubuntu One releases can be found here.
Technical Details
For a detailed and technical explanation of some of the pieces that make Ubuntu One click here.
Note: Because the "Ubuntu One" branding is non-specific and because most of the components do not have succinct official names, we'll use shorter (unique) names to succinctly identify each of the components and layers. You can find a table mapping these simple names to download packages and URLs here. (See the "storagefs" section for just how long-winded and suboptimal these actual names can get).
"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).
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.
UbuntuOne (last edited 2014-04-19 07:01:37 by bacc97c1)