surveydata.azureblobstorage module
Support for Azure Blob Storage survey data storage.
- class surveydata.azureblobstorage.AzureBlobStorage(container_name: str, blob_name_prefix: str, connection_string: Optional[str] = None, account_url: Optional[str] = None)
Bases:
StorageSystem
Azure Blob Storage survey data storage implementation.
- __init__(container_name: str, blob_name_prefix: str, connection_string: Optional[str] = None, account_url: Optional[str] = None)
Initialize Azure Blob Storage for survey data.
- Parameters:
container_name (str) – Azure Storage container name (must already exist)
blob_name_prefix (str) – Prefix to use for all blob names (e.g., “Surveys/Form123/”)
connection_string (str) – If connecting via connection string, the connection string to use
account_url (str) – If connecting via manual (prior) authentication, account URL to use, like https://<storageaccountname>.blob.core.windows.net
- attachment_object_name(submission_id: str, attachment_name: str) str
Get attachment object name for specific attachment.
- Parameters:
submission_id (str) – Unique submission ID
attachment_name (str) – Attachment filename
- Returns:
Object name for submission
- Return type:
str
- attachments_supported() bool
Query whether storage system supports attachments.
- Returns:
True if attachments supported, otherwise False
- Return type:
bool
- get_attachment(attachment_location: str = '', submission_id: str = '', attachment_name: str = '') BinaryIO
Get submission attachment from storage.
- Parameters:
attachment_location (str) – Attachment location string (as returned when attachment stored)
submission_id (str) – Unique submission ID (in lieu of attachment_location)
attachment_name (str) – Attachment filename (in lieu of attachment_location)
- Returns:
Attachment as file-like object (though, note: it doesn’t support seeking)
- Return type:
BinaryIO
Must pass either attachment_location or both submission_id and attachment_name.
- get_metadata(metadata_id: str) str
Get metadata string from storage.
- Parameters:
metadata_id (str) – Unique metadata ID (should begin and end with __ and not conflict with any submission ID)
- Returns:
Metadata string from storage, or empty string if no such metadata exists
- Return type:
str
- get_metadata_binary(metadata_id: str) bytes
Get metadata bytes from storage.
- Parameters:
metadata_id (str) – Unique metadata ID (should not conflict with any submission ID)
- Returns:
Metadata bytes from storage, or empty bytes array if no such metadata exists
- Return type:
bytes
- get_submission(submission_id: str) dict
Get submission data from storage.
- Parameters:
submission_id (str) – Unique submission ID
- Returns:
Submission data (or empty dictionary if submission not found)
- Return type:
dict
- list_attachments(submission_id: str = '') list
List all attachments currently in storage.
- Parameters:
submission_id (str) – Optional submission ID, to list only attachments for specific submission
- Returns:
List of attachments, each as dict with name, submission_id, and location_string
- Return type:
list
- list_submissions() list
List all submissions currently in storage.
- Returns:
List of submission IDs
- Return type:
list
- query_attachment(attachment_location: str = '', submission_id: str = '', attachment_name: str = '') bool
Query whether specific submission attachment exists in storage.
- Parameters:
attachment_location (str) – Attachment location string (as returned when attachment stored)
submission_id (str) – Unique submission ID (in lieu of attachment_location)
attachment_name (str) – Attachment filename (in lieu of attachment_location)
- Returns:
True if submission exists in storage; otherwise False
- Return type:
bool
Must pass either attachment_location or both submission_id and attachment_name.
- query_submission(submission_id: str) bool
Query whether specific submission exists in storage.
- Parameters:
submission_id (str) – Unique submission ID
- Returns:
True if submission exists in storage; otherwise False
- Return type:
bool
- store_attachment(submission_id: str, attachment_name: str, attachment_data: BinaryIO) str
Store submission attachment in storage.
- Parameters:
submission_id (str) – Unique submission ID
attachment_name (str) – Attachment filename
attachment_data (BinaryIO) – File-type object containing the attachment data
- Returns:
Location string for stored attachment
- Return type:
str
- store_metadata(metadata_id: str, metadata: str)
Store metadata string in storage.
- Parameters:
metadata_id (str) – Unique metadata ID (should begin and end with __ and not conflict with any submission ID)
metadata (str) – Metadata string to store
- store_metadata_binary(metadata_id: str, metadata: bytes)
Store metadata bytes in storage.
- Parameters:
metadata_id (str) – Unique metadata ID (should begin and end with __ and not conflict with any submission ID)
metadata (bytes) – Metadata bytes to store
- store_submission(submission_id: str, submission_data: dict)
Store submission data in storage.
- Parameters:
submission_id (str) – Unique submission ID
submission_data (dict) – Submission data to store
- submission_id(object_name: str) str
Get submission ID from object name.
- Parameters:
object_name (str) – Object name (e.g., from submission_object_name())
- Returns:
Submission ID
- Return type:
str
- submission_id_and_attachment_name(object_name: str) -> (<class 'str'>, <class 'str'>)
Get submission ID and attachment name from object name.
- Parameters:
object_name (str) – Object name (e.g., from submission_object_name())
- Returns:
Submission ID and attachment name
- Return type:
(str, str)
- submission_object_name(submission_id: str) str
Get submission object name for specific submission.
- Parameters:
submission_id (str) – Unique submission ID
- Returns:
Object name for submission
- Return type:
str