1

我有正在扫描文件的 ICAP 服务器和运行 pyicap 库的 ICAP 客户端(https://github.com/netom/pyicap

我想允许用户通过 ICAP 客户端开始下载文件,但在 ICAP 服务器没有响应时保留最后几个字节。

如果 ICAP 允许请求,python ICAP 客户端将释放最后一个字节,用户将获得一个文件。但如果 ICAP 拒绝此请求,则不得释放最后一个块,并且 ICAP 客户端必须向客户端发送取消或中止。

我有很多文件

                chunk_size = 4096 if file_size > 4096 else file_size / 2
                # slice file into two chunks or lots of chunks
                chunks = 2 if file_size / chunk_size < 1 else file_size / chunk_size

                self.send_headers(True)

                while chunks > 1:
                    data = upstream.read(chunk_size)
                    if not data:
                        print("no more data")
                        break
                    self.write_chunk(data)
                    chunks -= 1

如果ICAP允许这个请求,我可以发送最后一个块并且一切正常,但如果它拒绝我不知道如何中止客户端下载这个文件。

如何向客户端发送取消或中止?

4

0 回答 0