def get_storage_server(configuration, get_anonymous_storage_server):
    """
        Get an ``IAnnounceableStorageServer`` provider that gives an announcement
        for and an implementation of the server side of the storage protocol.
        This will be exposed and offered to clients in the storage server's
        announcement.

        :param dict configuration: Any configuration given in the section for
            this plugin in the node's configuration file.  As an example, the
            configuration for the original anonymous-access filesystem-based
            storage server might look like::

                {u"storedir": u"/foo/bar/storage",
                 u"nodeid": u"abcdefg...",
                 u"reserved_space": 0,
                 u"discard_storage": False,
                 u"readonly_storage": False,
                 u"expiration_enabled": False,
                 u"expiration_mode": u"age",
                 u"expiration_override_lease_duration": None,
                 u"expiration_cutoff_date": None,
                 u"expiration_sharetypes": (u"mutable, u"immutable"),
                }

        :param get_anonymous_storage_server: A no-argument callable which
            returns a single instance of the original, anonymous-access
            storage server.  This may be helpful in providing actual storage
            implementation behavior for a wrapper-style plugin.  This is also
            provided to keep the Python API offered by Tahoe-LAFS to plugin
            developers narrow (do not try to find and instantiate the original
            storage server yourself; if you want it, call this).

        :rtype: ``Deferred`` firing with ``IAnnounceableStorageServer``
        """
