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