File Downloader
File downloader utility methods and classes.
- vibe_core.file_downloader.build_file_path(dir_name, file_name, type='')
Build the full file path.
This is done by combining the directory name, file name and optional type to infer the file extension.
- Parameters:
dir_name (str) – Name of the directory.
file_name (str) – Name of the file.
type (str) – Type of the file (default is empty).
- Returns:
The full file path.
- Return type:
str
- vibe_core.file_downloader.download_file(url, file_path, chunk_size=1048576, connect_timeout=30, read_timeout=30, **kwargs)
Download a file from a given URL to the given file path.
The download is done using a retry session, to handle connection errors.
- Parameters:
url (str) – URL of the file to download.
file_path (str) – Path where the file will be saved.
chunk_size (int) – Amount of data to read from the server per request (defaults to
CHUNK_SIZE
).connect_timeout (float) – Time in seconds to wait for connection to the server before aborting (defaults to
CONNECT_TIMEOUT_S
).read_timeout (float) – Time in seconds for each chunk read from the server (defaults to
READ_TIMEOUT_S
).kwargs (Any) – Additional keyword arguments to be passed to the request library call.
- Returns:
Path of the saved file.
- Return type:
str
- vibe_core.file_downloader.retry_session()
Create a session with retry support.
This method creates a requests.Session object with retry support configured to retry failed requests up to
REQUEST_RETRIES
times with aREQUEST_BACKOFF
time back-off factor.- Returns:
A configured requests.Session object
- Return type:
Session
- vibe_core.file_downloader.verify_url(url, connect_timeout=30, **kwargs)
Verify the validity of a given URL.
This method attempts to connect to the specified url and verifies that it does not raise any HTTP or Connection errors.
- Parameters:
url (str) – The URL to check.
connect_timeout (float) – Timeout when attempting to connect to the specified url. Defaults to the value of
CONNECT_TIMEOUT_S
.kwargs (Any) – Additional keyword arguments to pass to the requests.get call.
- Returns:
True if the URL is valid, False otherwise.
- Return type:
bool
- vibe_core.file_downloader.CHUNK_SIZE = 1048576
Size of the chunks to read from the server per request.
- vibe_core.file_downloader.CONNECT_TIMEOUT_S = 30
Time in seconds to wait for connection to the server before aborting.
- vibe_core.file_downloader.READ_TIMEOUT_S = 30
Time in seconds for each chunk read from the server.
- vibe_core.file_downloader.REQUEST_BACKOFF = 0.3
Back-off factor to apply between retries.
- vibe_core.file_downloader.REQUEST_RETRIES = 5
Number of retries to perform when a request fails.