def put(self, subpath):
if Options['debug']:
print >> sys.stderr, 'DEBUG: putAction', Options['site_number'], subpath, len(self.request.body), self.request.arguments, self.request.headers.get('Content-Type')
action, sep, subsubpath = subpath.partition('/')
if action == '_remoteupload':
token = sliauth.gen_hmac_token(Options['auth_key'], 'upload:'+sliauth.digest_hex(self.request.body))
if self.get_argument('token') != token:
raise tornado.web.HTTPError(404, log_message='CUSTOM:Invalid remote upload token')
fname, fext = os.path.splitext(subsubpath)
uploadType, sessionNumber, src_path, web_path, web_images = self.getUploadType(fname)
errMsg = ''
if fext == '.zip':
fname1, fbody1, fname2, fbody2 = '', '', subsubpath, self.request.body
else:
fname1, fbody1, fname2, fbody2 = subsubpath, self.request.body, '', ''
if fbody1 and fext == '.md':
fbody1 = sliauth.normalize_newlines(fbody1)
try:
errMsg = self.uploadSession(uploadType, sessionNumber, fname1, fbody1, fname2, fbody2, modimages='clear')
except Exception, excp:
if Options['debug']:
import traceback
traceback.print_exc()
errMsg = str(excp)
if errMsg:
raise tornado.web.HTTPError(404, log_message='CUSTOM:Error in remote uploading session: '+errMsg)
self.set_status(200)
self.finish()
return
raise tornado.web.HTTPError(403, log_message='CUSTOM:Invalid PUT action '+action)
评论列表
文章目录