我正在定义bottle
需要从客户端接受文件然后将该文件保存到本地系统上的 HDFS 的 api。
代码看起来像这样。
@route('/upload', method='POST')
def do_upload():
import pdb; pdb.set_trace()
upload = request.files.upload
name, ext = os.path.splitext(upload.filename)
save_path = "/data/{user}/{filename}".format(user=USER, filename=name)
hadoopy.writetb(save_path, upload.file.read())
return "File successfully saved to '{0}'.".format(save_path)
问题是,它request.files.upload.file
是一个类型的对象cStringIO.StringO
,可以通过方法转换为str
a .read()
。但是hadoopy.writetb(path, content)
期望内容是其他格式,并且服务器坚持这一点。它不会给出异常,也不会给出错误或任何结果。只是站在那里,好像它处于无限循环中。
有谁知道如何将瓶子 api 中的传入文件写入 HDFS?