Remove file from the storage. File is identified by opened `file_obj`,
        from which the hashes / path are computed.

        Args:
            file_obj (file): Opened file-like object, which is used to compute
                     hashes.

        Raises:
            IOError: If the `file_obj` is not in storage.

def delete_by_file(self, file_obj):
        """
        Remove file from the storage. File is identified by opened `file_obj`,
        from which the hashes / path are computed.

        Args:
            file_obj (file): Opened file-like object, which is used to compute
                     hashes.

        Raises:
            IOError: If the `file_obj` is not in storage.
        """
        BalancedDiscStorage._check_interface(file_obj)

        file_hash = self._get_hash(file_obj)

        return self.delete_by_hash(file_hash)