def _create_blob(<EOL>self, container_name, blob_name, content_length, content_settings=None,<EOL>sequence_number=None, metadata=None, lease_id=None, premium_page_blob_tier=None, if_modified_since=None,<EOL>if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None,<EOL>encryption_data=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>_validate_not_none('<STR_LIT>', content_length)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = _get_path(container_name, blob_name)<EOL>request.query = {'<STR_LIT>': _int_to_str(timeout)}<EOL>request.headers = {<EOL>'<STR_LIT>': _to_str(self.blob_type),<EOL>'<STR_LIT>': _to_str(content_length),<EOL>'<STR_LIT>': _to_str(lease_id),<EOL>'<STR_LIT>': _to_str(sequence_number),<EOL>'<STR_LIT>': _to_str(premium_page_blob_tier),<EOL>'<STR_LIT>': _datetime_to_utc_string(if_modified_since),<EOL>'<STR_LIT>': _datetime_to_utc_string(if_unmodified_since),<EOL>'<STR_LIT>': _to_str(if_match),<EOL>'<STR_LIT>': _to_str(if_none_match)<EOL>}<EOL>_add_metadata_headers(metadata, request)<EOL>if content_settings is not None:<EOL><INDENT>request.headers.update(content_settings._to_headers())<EOL><DEDENT>if encryption_data is not None:<EOL><INDENT>request.headers['<STR_LIT>'] = encryption_data<EOL><DEDENT>return self._perform_request(request, _parse_base_properties)<EOL>
See create_blob for more details. This helper method
allows for encryption or other such special behavior because
it is safely handled by the library. These behaviors are
prohibited in the public version of this function.
:param str encryption_data:
    The JSON formatted encryption metadata to upload as a part of the blob.
    This should only be passed internally from other methods and only applied
    when uploading entire blob contents immediately follows creation of the blob.