IPWorks Cloud 2020 Python Edition

Questions / Feedback?

download_file Method

Downloads a file by name.

Syntax

def download_file(bucket_name: str, file_name: str) -> None: ...

Remarks

This method downloads the latest version of the file named FileName from the bucket named BucketName. The range property can optionally be set before calling this method to download a specific range of data from the file.

This method can be used to download files that are owned by other accounts, so long as an appropriate download authorization token and download URL are supplied using the DownloadAuthToken and DownloadURL configuration settings; refer to their documentation for more information.

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

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

Download Notes

In the simplest use-case, downloading a file looks like this:

b2.LocalFile = "../MyData.zip";
b2.DownloadFile("MyBucket", "data.zip"); // Or, DownloadFileById().

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 = "../MyData.zip";
b2.LocalFile = downloadFile;
b2.DownloadFile("MyBucket", "data.zip"); // Or, DownloadFileById().

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

//Get the size of the partially downloaded file
b2.StartByte = new FileInfo(downloadFile).Length;
b2.DownloadFile("MyBucket", "data.zip"); // Or, DownloadFileById().

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.

b2.LocalFile = "../MyData.zip";
b2.EncryptionPassword = "password";
b2.DownloadFile("MyBucket", "data.zip"); // Or, DownloadFileById().

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

//Get the size of the partially downloaded temp file
b2.StartByte = new FileInfo(b2.Config("DownloadTempFile")).Length;
b2.DownloadFile("MyBucket", "data.zip"); // Or, DownloadFileById().

The currently-authenticated application key must have the readFiles capability (unless the bucket is public) to call this method successfully, otherwise the server will return an error. Refer to the account_capabilities property for more information.

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