def post(self): id = getid(self.request.path) chunk = self.get_chunk(id) if chunk is None: self.response.status = 404 self.response.out.write("Chunk %s not found" % id) return if self.request.POST["addref"] == "1": chunk.refcount = chunk.refcount + 1 chunk.put()
def delete(self): id = getid(self.request.path) chunk = self.get_chunk(id) if chunk is None: self.response.status = 404 self.response.out.write("Chunk %s not found" % id) return chunk.refcount = chunk.refcount - 1 if chunk.refcount == 0: chunk.delete() else: chunk.put()
def put(self): id = getid(self.request.path) chunk = self.get_chunk(id) if chunk is not None: chunk.refcount = chunk.refcount + 1 else: parity = None try: parity = int(self.request.headers['X-Arrow-Parity']) except: pass chunk = Chunk(id=id, refcount=1, data=self.request.body_file.read(), parity=parity) chunk.put()