コード例 #1
0
ファイル: api.py プロジェクト: maximsch2/flow-dashboard
 def serve(self, d):
     import cloudstorage as gcs
     rkey = self.request.get('rkey')
     r = Report.GetAccessible(rkey, self.user, urlencoded_key=True)
     if r:
         if r.is_done() and r.gcs_files:
             gcsfn = r.gcs_files[0]
             if tools.on_dev_server():
                 try:
                     gcs_file = gcs.open(gcsfn, 'r')
                 except gcs.NotFoundError, e:
                     self.response.out.write("File not found")
                 else:
                     self.response.headers[
                         'Content-Type'] = Report.content_type(r.extension)
                     self.response.headers['Content-Disposition'] = str(
                         'attachment; filename="%s"' % r.filename())
                     self.response.write(gcs_file.read())
                     gcs_file.close()
             else:
                 signed_url = tools.sign_gcs_url(gcsfn,
                                                 expires_after_seconds=5)
                 response = self.redirect(signed_url)
                 logging.info(response)
         else:
             self.set_response(success=False,
                               status=404,
                               message="Report not ready")  # Not found
コード例 #2
0
 def delete(self, d):
     rkey = self.request.get('rkey')
     r = Report.GetAccessible(rkey, self.user, urlencoded_key=True)
     if r:
         r.clean_delete(self_delete=True)
         self.message = "Report deleted"
         self.success = True
     else:
         self.message = "Report not found"
     self.set_response()