ICAP RESPMOD保留并阻止下载文件

问题描述

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

我希望允许用户开始通过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允许该请求,我可以发送最后一个块,一切正常,但如果拒绝,我不知道如何终止客户端对该文件的下载。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)