IPWorks Cloud 2020 Python Edition

Questions / Feedback?

download_file Method

Downloads, and optionally converts, a file.

Syntax

def download_file(resource_id: str, mime_type: str) -> None: ...

Remarks

This method downloads the file specified by ResourceId.

If local_file is set, the file will be saved to the specified location; otherwise, the file data will be held by resource_data.

If the empty string is passed for MimeType, the file will be downloaded as-is. If the file is in one of the Google formats shown in the table below, one of the MIME types shown in the third column can be passed for MimeType instead to convert the file before downloading it.

Google FormatDownload Format MIME Type
Google Docs HTML text/html
Plain text text/plain
Rich text application/rtf
Open Office document application/vnd.oasis.opendocument.text
PDF application/pdf
MS Word application/vnd.openxmlformats-officedocument.wordprocessingml.document
Google Sheets MS Excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Open Office sheet application/x-vnd.oasis.opendocument.spreadsheet
PDF application/pdf
CSV (first sheet only) text/csv
Google Drawing JPEG image/jpeg
PNG image/png
SVG image/svg+xml
PDF image/pdf
Google Slides MS Powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation
PDF application/pdf
Plain text text/plain
Google App Scripts JSON application/vnd.google-apps.script+json

Download Notes

Downloading an Encrypted File

To decrypt an encrypted file set encryption_algorithm and encryption_password before calling this method.

googledrive.LocalFile = "../MyFile.zip";
googledrive.DownloadFile(googledrive.Resources[0].Id, "");

Resuming Downloads

The class also supports resuming failed downloads by using the start_byte property. If a download is interrupted, set start_byte to the appropriate offset before calling this method to resume the download.

string downloadFile = "../MyFile.zip";
googledrive.LocalFile = downloadFile;
googledrive.DownloadFile(googledrive.Resources[0].Id, "");

//The transfer is interrupted and DownloadFile() above fails. Later, resume the download:

//Get the size of the partially downloaded file
googledrive.StartByte = new FileInfo(downloadFile).Length;
googledrive.DownloadFile(googledrive.Resources[0].Id, "");

Resuming Encrypted File Downloads

Resuming encrypted file downloads is only supported when local_file was set in the initial download attempt.

If local_file is set when beginning an encrypted download, the class creates a temporary file in TempPath to hold the encrypted data until the download is complete. If the download is interrupted, DownloadTempFile will be populated with the path of the temporary file that holds the partial data.

To resume, DownloadTempFile must be populated, along with start_byte, to allow the remainder of the encrypted data to be downloaded. Once the encrypted data is downloaded it will be decrypted and written to local_file.

googledrive.LocalFile = "../MyFile.zip";
googledrive.EncryptionPassword = "password";
googledrive.DownloadFile(googledrive.Resource[0].Id, "");

//The transfer is interrupted and DownloadFile() above fails. Later, resume the download:

//Get the size of the partially download temp file
googledrive.StartByte = new FileInfo(googledrive.Config("DownloadTempFile")).Length;
googledrive.DownloadFile(googledrive.Resource[0].Id, "");

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks Cloud 2020 Python Edition - Version 20.0 [Build 8265]