Globus Online Transfer API client library
This package contains a client library for the Globus Online Transfer API.
For detailed documentation of the Transfer API, see https://transfer.api.globusonline.org
If you downloaded the source from github, simply run:
python setup.py install
There is also a package on PyPI with the latest stable version; it can be installed with easy_install or pip:
from globusonline.transfer import api_client api = api_client.TransferAPIClient(username="myusername", cert_file="/path/to/client/credential", key_file="/path/to/client/credential") status_code, status_message, data = api.task_list()
See the globusonline/transfer/api_client/examples directory for more complete examples. If you installed from PyPI, this will be somewhere in your Python path:
python -c "from globusonline.transfer import api_client; print api_client.__path__"
One of the best ways to learn the library is to run an interactive interpreter with an instance of the client. The module provides a shortcut for doing this:
python -i -m globusonline.transfer.api_client.main USERNAME -p >>> status_code, status_message, data = api.task_list() >>> dir(api) # get a list of all available methods
replace USERNAME with your Globus Online username, and you will be prompted for your password.
- Use standard python httplib if the python version has PEP 0476 (2.7.9+). This should fix an issue with using an http proxy, since the custom verified_https library uses private APIs that broke in later versions of 2.7.x.
- Remove deprecated ‘bearer’ authentication method.
- Remove deprecated method ‘task_subtask_list’.
- Add method for creating shared endpoints.
- Add method for successful transfers API to replace subtask API.
- Add methods for new server API.
- Add InCommon CA and simplify CA handling.
- Improve handling of HTML errors.
- Handle 503 errors within retry loop.
- Replace GO abbreviation in prompts with Globus Online.
- Add goauth authentication and remove cookie authentication. Password prompt now uses goauth instead of scraping a cookie from the website.
- Add hostname validation to verified_https module.
- Add missing options to endpoint_create.
- Add example add-endpoint.py that prompts for username and password and uses goauth to authenticate.
- Fix password prompt authentication to work with current globusonline website.
- Support keyword args to Transfer constructor; can be used to pass encrypt_data, verify_checksum, and any options added in the future, without requiring a client library update.
- Support Bearer auth header for passing the auth token in addition to the cookie option.
- Fix Delete when not passing a deadline argument.
- Improve interactive script by importing Transfer and Delete.
- Add interpret_globs option to Delete.
- Fix set_submit_type in ActivationRequirementList to properly update the mapping.
- Include CAs in the package; the server_ca_file parameter (and the -C command line arg) is no longer required.
- Alternate delegate_proxy activation implementation using a custom C program called mkproxy instead of M2Crypto. See mkproxy/README.markdown for details. mkproxy is the preferred implementations, so if both the executable and M2Crypto are installed, mkproxy is used.
- Moved examples to package data, so they are included in the PyPI package.
- Add https proxy support, using the HTTPS_PROXY environment variable. This has been tested in 2.6.6 and 2.7, and does not work in 2.6.1 (because the tunnel features was added in the middle of the 2.6.X cycle). Other versions > 2.6.1 may also work, but this has not been tested. Thanks to Brett Viren for this feature!
- If you have both your key and certificate in the same file, you don’t have to pass it to both -c and -k when running the examples and interactive client. Just pass one of them, and it will assume the file contains both.
- Added some basic usage docs to examples/delegate_proxy_activate.py
- Fix example.py breakage when printing GC endpoints.
- Import readline in main.py, for more convenient interactive testing.