Spaces:
Runtime error
Runtime error
File size: 932 Bytes
3cc543c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import base64
from io import BytesIO
def read_b64_string(b64_string, return_data_type=False):
"""Read a base64-encoded string into an in-memory file-like object."""
data_header, b64_data = split_and_validate_b64_string(b64_string)
b64_buffer = BytesIO(base64.b64decode(b64_data))
if return_data_type:
return get_b64_filetype(data_header), b64_buffer
else:
return b64_buffer
def get_b64_filetype(data_header):
"""Retrieves the filetype information from the data type header of a base64-encoded object."""
_, file_type = data_header.split("/")
return file_type
def split_and_validate_b64_string(b64_string):
"""Return the data_type and data of a b64 string, with validation."""
header, data = b64_string.split(",", 1)
assert header.startswith("data:")
assert header.endswith(";base64")
data_type = header.split(";")[0].split(":")[1]
return data_type, data
|