def METHOD_NAME(self, identity, uuid, key=None):
    """Get the file for the given ``uuid``.
    If the ``uuid`` has the shape ``<record|draft>:<pid_value>:<key>``, then the
    ``key`` argument is ignored.
    If it is of the shape ``<record|draft>:<pid_value>`` however, the ``key``
    argument is required.
    :raises FileKeyNotFoundError: If the record has no file for the ``key``
    """
    if key:
        type_, id_ = self._iiif_uuid(uuid)
    else:
        type_, id_, key = self._iiif_image_uuid(uuid)
    service = self.file_service(type_)
    # TODO: add cache and check if the metadata is present
    return service.get_file_content(id_=id_, file_key=key, identity=identity)