def post(self): self.response.headers ['Content-type'] = "text/html;charset=utf-8" try: bbs = db.get(self.request.get("bbs_key")) user = users.get_current_user() if(bbs.bbs_mode==BbsConst.BBS_MODE_ONLY_ADMIN): if(OwnerCheck.check(bbs,user)): self.response.out.write("[error]") return if(self.request.get("thread_key")): thread=db.get(self.request.get("thread_key")) timage=thread.image_key if(OwnerCheck.check(bbs,user)): if(thread.delete_key=="" or thread.delete_key!=self.request.get("delete_key")): self.response.out.write("[error]") return else: timage=ThreadImage() timage.bbs_key=db.get(self.request.get("bbs_key")) timage.image=db.Blob(self.request.get("image")) timage.thumbnail=db.Blob(self.request.get("thumbnail")) #削除するチャンクのリスト old_chunk_list_key=copy.deepcopy(timage.chunk_list_key) #Chunkに分割して入れる timage.moper=None timage.chunk_list_key=ChunkManager.upload(self.request.get("moper"),db.get(self.request.get("bbs_key"))) timage.gif_thumbnail=db.Blob(self.request.get("gif_thumbnail")) timage.illust_mode=2; timage.width=int(self.request.get("canvas_width")) timage.height=int(self.request.get("canvas_height")) timage.put() ImageFile.invalidate_cache(str(timage.key())) self.response.out.write(""+str(timage.key())) #古いデータの削除 if(old_chunk_list_key): ChunkManager.delete(old_chunk_list_key) except: self.response.out.write("[error]") return #投稿数の更新 if(user): ApiUser.invalidate_thread_count(user.user_id())
def get(self): entry = db.get(self.request.get("id")) if entry.image: self.response.headers['Content-Type'] = "application/octet-stream" if(entry.moper): self.response.out.write(entry.moper) else: if(entry.chunk_list_key): ChunkManager.download(self.response.out,entry.chunk_list_key) #self.response.out.write(ChunkManager.download(entry.chunk_list_key)) else: self.error(404) else: self.error(404)