
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Twisted-based async interface for Ubuntu One <https://one.ubuntu.com>
_
Files Cloud REST API v1 <https://one.ubuntu.com/developer/files/store_files/cloud>
_.
U1 API docs <https://one.ubuntu.com/developer/files/store_files/cloud>
_U1 API Auth docs <https://one.ubuntu.com/developer/account_admin/auth/index>
_Implemented from scratch on top of Twisted and
oauth2 <https://pypi.python.org/pypi/oauth2/>
_ (name might be
confusing - it's actually OAuth 1.0 helper), does not require any
ubuntu-specific libs, daemons or modules.
Note that email/password credentials are only needed to get the OAuth
1.0 consumer/token (which can be revoked through ubuntu single sign on interface <https://login.ubuntu.com/+applications>
) once, see
docs <https://one.ubuntu.com/developer/account_admin/auth/otherplatforms>
for more details.
Included "u1-cli" script can also be used to generate these OAuth credentials for the apps.
::
from twisted.internet import defer, reactor
from txu1 import txU1, DoesNotExist
@defer.inlineCallbacks
def do_stuff():
api = txU1(debug_requests=True)
try:
api.auth_consumer, api.auth_token =\
(open(n).read().splitlines() for n in ['u1_consumer', 'u1_token'])
except (OSError, IOError):
print 'Getting new OAuth credentials'
# Query credentials from terminal
email = raw_input('U1 Email: ').strip()
password = raw_input('U1 Password: ').strip()
assert email and password, (email, password)
auth = yield api.auth_create_token(email, password)
open('u1_consumer', 'w').write('{}\n{}\n'.format(*api.auth_consumer))
open('u1_token', 'w').write('{}\n{}\n'.format(*api.auth_token))
print 'Auth data acquired: {}'.format(auth)
print 'Storage info: {}'.format((yield api.info_storage()))
print 'Public files: {}'.format((yield api.info_public_files()))
vol_list = yield api.volume_info(type_filter='udf')
vol_count = len(vol_list)
print 'UDF volumes: {}'.format(vol_list)
try: vol_info = yield api.volume_info('~/test')
except DoesNotExist:
vol_info = yield api.volume_create('~/test')
vol_count += 1
print 'Using volume: {}'.format(vol_info)
if vols_count > 1: api.default_volume = '~/test'
try: print 'dir info: {}'.format((yield api.node_info('/a/b/c', children=True)))
except DoesNotExist: print 'mkdir: {}'.format((yield api.node_mkdir('/a/b/c')))
contents = 'somecontents'
print 'put: {}'.format(
(yield api.file_put_into('/a/b/c', name='test_file', data=contents)) )
print 'put_magic: {}'.format(
(yield api.file_put_magic('/a/b/c/test_file2', data=contents)) )
print 'get: {}'.format((yield api.file_get('/a/b/c/test_file')))
print "Hey! I'm running some DELETE operations, don't mind me..."
yield api.node_delete('/a/b/c/test_file2')
yield api.node_delete('/a/b/c/test_file')
yield api.node_delete('/a/b/c')
yield api.volume_delete('~/test')
print 'Done'
do_stuff().addBoth(lambda ignored: reactor.stop())
reactor.run()
More comprehensive docs are always welcome!
It's a regular package for Python 2.7 (not 3.X).
Using pip <http://pip-installer.org/>
_ is the best way:
::
% pip install txu1
If you don't have it, use:
::
% easy_install pip
% pip install txu1
Alternatively (see also <http://www.pip-installer.org/en/latest/installing.html>
_):
::
% curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
% pip install txu1
Or, if you absolutely must:
::
% easy_install txu1
But, you really shouldn't do that.
Current-git version can be installed like this:
::
% pip install 'git+https://github.com/mk-fg/txu1.git#egg=txu1'
Note that to install stuff in system-wide PATH and site-packages,
elevated privileges are often required. Use "install --user",
~/.pydistutils.cfg <http://docs.python.org/install/index.html#distutils-configuration-files>
_
or virtualenv <http://pypi.python.org/pypi/virtualenv>
_ to do
unprivileged installs into custom paths.
Requirements
- `Python 2.7 (not 3.X) <http://python.org>`_
- `Twisted <http://twistedmatrix.com>`_ (core, web, at least 12.2.0)
- `oauth2 <https://pypi.python.org/pypi/oauth2/>`_
FAQs
Twisted-based async interface for Ubuntu One Files Cloud REST API v1
We found that txu1 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.