import asyncio from waterbutler.core import streams from waterbutler.providers.s3 import S3Provider from waterbutler.providers.box import BoxProvider from waterbutler.providers.github import GitHubProvider from waterbutler.providers.dropbox import DropboxProvider from waterbutler.providers.googledrive import GoogleDriveProvider loop = asyncio.get_event_loop() creds = { 's3': {'access_key': '...', 'secret_key': '...'}, 'dropbox': {'token': '...'}, 'box': {'token': '...'}, 'github': {'token': '...'}, 'googledrive': {'token': '...'}, } settings = { 's3': {'bucket': 'imatestbucket'}, 'dropbox': {'folder': '/Folder_Name'}, 'box': {'folder': '0'}, 'github': {'repo': 'TestRepo', 'owner': 'chrisseto'}, 'googledrive': {'folder': {'id': 'root', 'name': u'Folder Name', 'path': u'Folder%20Name'}}, } s3 = S3Provider({}, creds['s3'], settings['s3']) box = BoxProvider({}, creds['box'], settings['box']) github = GitHubProvider({}, creds['github'], settings['github']) dropbox = DropboxProvider({}, creds['dropbox'], settings['dropbox']) googledrive = GoogleDriveProvider({}, creds['googledrive'], settings['googledrive']) github.name = 'chrisseto' github.email = 'chrisseto@cos.io' # List the root directory of google drive loop.run_until_complete(box.metadata('/')) # Get information about a single file loop.run_until_complete(s3.metadata('/myfile.txt')) # Download a file and print it out loop.run_until_complete(loop.run_until_complete(s3.download('/myfile.txt')).read()) # Upload a file called myfile.txt; returns (metadata, created) loop.run_until_complete(dropbox.upload(streams.StringStream('This will be the contents of myfile.txt'), '/myfile.txt')) # Copy a file called "myfile.txt" from Dropbox to Box and rename it to "myfile.dropbox.txt"; returns (metadata, created) loop.run_until_complete(dropbox.copy(box, {'path': '/myfile.txt'}, {'path': '/myfile.dropbox.txt'}))