def set_file_metadata(self, share_name, directory_name, <EOL>file_name, metadata=None, timeout=None):
_validate_not_none('<STR_LIT>', share_name)<EOL>_validate_not_none('<STR_LIT>', file_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host = self._get_host()<EOL>request.path = _get_path(share_name, directory_name, file_name)<EOL>request.query = [<EOL>('<STR_LIT>', '<STR_LIT>'),<EOL>('<STR_LIT>', _int_to_str(timeout)),<EOL>]<EOL>request.headers = [('<STR_LIT>', metadata)]<EOL>self._perform_request(request)<EOL>
Sets user-defined metadata for the specified file as one or more
name-value pairs.

:param str share_name:
    Name of existing share.
:param str directory_name:
    The path to the directory.
:param str file_name:
    Name of existing file.
:param metadata:
    Dict containing name and value pairs. Each call to this operation
    replaces all existing metadata attached to the file. To remove all
    metadata from the file, call this operation with no metadata headers.
:type metadata: dict mapping str to str
:param int timeout:
    The timeout parameter is expressed in seconds.