<div dir="ltr">i want to interrupt the file sending. but i can't change the client. so i need change the server.<div style>All things go well, but the message i wanna response seem not work.</div><div style>is the self.transport.loseConnection() (the last line) blocking the messages?</div>
<div style>in fact, i work on Cumulus(nimbus project) which based on twisted. And i use s3cmd as the client.</div><div style><br></div><div style>here is the my code:</div><div style><br></div><div style> def headerReceived(self,line):</div>
<div> pycb.log(logging.INFO, "===== def headerReceived of cumulus.py")</div><div> http.HTTPChannel.headerReceived(self,line)</div><div> pycb.log(logging.INFO, "===== self.length is %s"%self.length)</div>
<div> </div><div> header, data = line.split(':', 1)</div><div> header = header.lower()</div><div> data = data.strip()</div><div> if header=='authorization':</div><div> self.authorization=data</div>
<div> </div><div> </div><div> if self.length and self.authorization:</div><div> user_id = self.authorization.split(':')[0].split()[1].strip()</div><div> user = pycb.config.auth.get_user(user_id)</div>
<div> </div><div> pycb.log(logging.INFO, "===== user who put this object is %s"%user)</div><div> </div><div> remaining_quota = user.get_remaining_quota()</div><div> pycb.log(logging.INFO, "===== remaining_quota is %s"%remaining_quota)</div>
<div> quota_check=self.length-remaining_quota</div><div> pycb.log(logging.INFO, "===== quota_check=self.length-remaining_quota of cumulus.py")</div><div> </div><div> if quota_check>0:</div>
<div> requestId = str(uuid.uuid1()).replace("-", "")</div><div> ex=cbException('AccountProblem')</div><div> </div><div> m_msg = "HTTP/1.1 %s %s\r\n" % (ex.httpCode, ex.httpDesc)</div>
<div> self.transport.write(m_msg)</div><div> </div><div> m_msg = "%s: %s\r\n" % (('x-amz-request-id', requestId))</div><div> self.transport.write(m_msg)</div>
<div> #req.setHeader('x-amz-request-id', requestId)</div><div> </div><div> m_msg = "%s: %s\r\n" % (('x-amz-id-2', str(uuid.uuid1())))</div><div> self.transport.write(m_msg)</div>
<div> </div><div> e_msg = ex.make_xml_string(self._path, str(uuid.uuid1()))</div><div> pycb.log(logging.INFO, "===== e_msg is %s"%e_msg)</div><div> #self.transport.write("\r\n")</div>
<div> self.transport.write(e_msg)</div><div> pycb.log(logging.INFO, "===== self.transport.write(e_msg)")</div><div> </div><div> </div><div> self.transport.loseConnection()</div>
</div>