google.drive#

class platypush.plugins.google.drive.GoogleDrivePlugin(*args, **kwargs)[source]#

Bases: GooglePlugin

Google Drive plugin.

Requires:

  • google-api-python-client (pip install google-api-python-client)

  • oauth2client (pip install oauth2client)

__init__(*args, **kwargs)[source]#

Initialized the Google plugin with the required scopes.

Parameters:

scopes (list) – List of required scopes

copy(file_id: str) GoogleDriveFile[source]#

Create a copy of a file. :param file_id: File ID.

create(name: str, description: str | None = None, mime_type: str | None = None, parents: List[str] | None = None, starred: bool = False) GoogleDriveFile[source]#

Create a file.

Parameters:
  • name – File name.

  • description – File description.

  • mime_type – File MIME type.

  • parents – List of folder IDs that will contain the file (default: drive root).

  • starred – If True then the file will be marked as starred.

delete(file_id: str)[source]#

Delete a file from Google Drive. :param file_id: File ID.

download(file_id: str, path: str) str[source]#

Download a Google Drive file locally.

Parameters:
  • file_id – Path of the file to upload.

  • path – Path of the file to upload.

Returns:

The local file path.

empty_trash()[source]#

Empty the Drive bin.

files(filter: str | None = None, folder_id: str | None = None, limit: int | None = 100, drive_id: str | None = None, spaces: str | List[str] | None = None, order_by: str | List[str] | None = None) GoogleDriveFile | List[GoogleDriveFile][source]#

Get the list of files.

Parameters:
  • filter – Optional filter (default: None). See Google Drive API docs for the supported syntax.

  • folder_id – Drive folder ID to search (default: get all files).

  • limit – Maximum number of entries to be retrieves (default: 100).

  • drive_id – Shared drive ID to search (default: None).

  • spaces

    Drive spaces to search. Supported values:

    • drive

    • appDataFolder

    • photos

  • order_by

    Order the results by a specific attribute or list of attributes (default: None). Supported attributes:

    • createdTime

    • folder

    • modifiedByMeTime

    • modifiedTime

    • name

    • name_natural

    • quotaBytesUsed

    • recency

    • sharedWithMeTime

    • starred

    • viewedByMeTime

    Attributes will be sorted in ascending order by default. You can change that by by appending “desc” separated by a space to the attribute you want in descending order - e.g. ["folder", "createdTime desc", "modifiedTime desc"].

get(file_id: str)[source]#

Get the information of a file on the Drive by file ID. :param file_id: File ID.

update(file_id: str, name: str | None = None, description: str | None = None, add_parents: List[str] | None = None, remove_parents: List[str] | None = None, mime_type: str | None = None, starred: bool = None, trashed: bool = None) GoogleDriveFile[source]#

Update the metadata or the content of a file.

Parameters:
  • file_id – File ID.

  • name – Set the file name.

  • description – Set the file description.

  • add_parents – Add the file to these parent folder IDs.

  • remove_parents – Remove the file from these parent folder IDs.

  • mime_type – Set the file MIME type.

  • starred – Change the starred flag.

  • trashed – Move/remove from trash.

upload(path: str, mime_type: str | None = None, name: str | None = None, description: str | None = None, parents: List[str] | None = None, starred: bool = False, target_mime_type: str | None = None) GoogleDriveFile[source]#

Upload a file to Google Drive.

Parameters:
  • path – Path of the file to upload.

  • mime_type – MIME type of the source file (e.g. “image/jpeg”).

  • name – Name of the target file. Default: same name as the source file.

  • description – File description.

  • parents – List of folder IDs that will contain the file (default: drive root).

  • starred – If True, then the uploaded file will be marked as starred by the user.

  • target_mime_type – Target MIME type. Useful if you want to e.g. import a CSV file as a Google Sheet (use “application/vnd.google-apps.spreadsheet), or an ODT file to a Google Doc (use “application/vnd.google-apps.document). See the official documentation for a complete list of supported types.