platypush.plugins.dropbox

class platypush.plugins.dropbox.DropboxPlugin(access_token, **kwargs)[source]

Plugin to manage a Dropbox account and its files and folders.

Requires:

  • dropbox (pip install dropbox)
__init__(access_token, **kwargs)[source]
Parameters:access_token (str) – Dropbox API access token. You can get yours by creating an app on https://dropbox.com/developers/apps
copy(from_path: str, to_path: str, allow_shared_folder=True, autorename=False, allow_ownership_transfer=False)[source]

Copy a file or folder to a different location in the user’s Dropbox. If the source path is a folder all its contents will be copied.

Parameters:
  • from_path – Source path
  • to_path – Destination path
  • allow_shared_folder (bool) – If true, files_copy() will copy contents in shared folder, otherwise RelocationError.cant_copy_shared_folder will be returned if from_path contains shared folder. This field is always true for files_move().
  • autorename (bool) – If there’s a conflict, have the Dropbox server try to autorename the file to avoid the conflict.
  • allow_ownership_transfer (bool) – Allow moves by owner even if it would result in an ownership transfer for the content being moved. This does not apply to copies.
delete(path: str)[source]

Delete the file or folder at a given path. If the path is a folder, all its contents will be deleted too

Parameters:path (str) – Path to be removed
download(path: str, download_path=None, zip=False)[source]

Download a file or a zipped directory from a user’s Dropbox.

Parameters:
  • path (str) – Dropbox destination path
  • download_path (str) – Destination path on the local machine (optional)
  • zip (bool) – If set then the content will be downloaded in zip format (default: False)
Return type:

dict

Returns:

A dictionary with keys: ('id', 'name', 'parent_shared_folder_id', 'path', 'size', 'encoding', 'content_hash'). If download_path is set ‘file’ is also returned. Otherwise ‘content’ will be returned. If it’s a text file then ‘content’ will contain its string representation, otherwise its base64-encoded representation.

get_account(account_id=None)[source]

Get the information about a linked Dropbox account

Parameters:account_id (str) – account_id. If none is specified then it will retrieve the current user’s account id
Returns:dict with the following attributes: account_id, name, email, email_verified, disabled, profile_photo_url, team_member_id
get_metadata(path: str)[source]

Get the metadata of the specified path

Parameters:path (str) – Path to the resource
Rtype dict:
get_usage()[source]

Get the amount of allocated and used remote space

Returns:dict
list(folder='')[source]

Returns the files in a folder

Parameters:folder (str) – Folder name (default: root)
Returns:dict
mkdir(path: str)[source]

Create a folder at a given path.

Parameters:path (str) – Folder path
move(from_path: str, to_path: str, allow_shared_folder=True, autorename=False, allow_ownership_transfer=False)[source]

Move a file or folder to a different location in the user’s Dropbox. If the source path is a folder all its contents will be moved.

Parameters:
  • from_path – Source path
  • to_path – Destination path
  • allow_shared_folder (bool) – If true, files_copy() will copy contents in shared folder, otherwise RelocationError.cant_copy_shared_folder will be returned if from_path contains shared folder. This field is always true for files_move().
  • autorename (bool) – If there’s a conflict, have the Dropbox server try to autorename the file to avoid the conflict.
  • allow_ownership_transfer (bool) – Allow moves by owner even if it would result in an ownership transfer for the content being moved. This does not apply to copies.
restore(path: str, rev: str)[source]

Restore a specific revision of a file to the given path.

Parameters:
  • path (str) – Path to be removed
  • rev (str) – Revision ID to be restored
save(path: str, url: str)[source]

Save a specified URL into a file in user’s Dropbox. If the given path already exists, the file will be renamed to avoid the conflict (e.g. myfile (1).txt).

Parameters:
  • path – Dropbox destination path
  • url – URL to download
search(query: str, path='', start=0, max_results=100, content=False)[source]

Searches for files and folders. Note: Recent changes may not immediately be reflected in search results due to a short delay in indexing.

Parameters:
  • path (str) – The path in the user’s Dropbox to search. Should probably be a folder.
  • query (str) – The string to search for. The search string is split on spaces into multiple tokens. For file name searching, the last token is used for prefix matching (i.e. “bat c” matches “bat cave” but not “batman car”).
  • start (long) – The starting index within the search results (used for paging).
  • max_results (long) – The maximum number of search results to return.
  • content – Search also in files content (default: False)
Rtype dict:
Returns:

Dictionary with the following fields: ('matches', 'start').

upload(file=None, text=None, path='/', overwrite=False, autorename=False)[source]

Create a new file with the contents provided in the request. Do not use this to upload a file larger than 150 MB

Parameters:
  • file (str) – File to be uploaded
  • text (str) – Text content to be uploaded
  • path (str) – Path in the user’s Dropbox to save the file.
  • overwrite (bool) – If set, in case of conflict the file will be overwritten (default: append content)
  • autorename (bool) – If there’s a conflict, as determined by mode, have the Dropbox server try to autorename the file to avoid conflict.
Rtype dict:
Returns:

Dictionary with the metadata of the uploaded file