我想调用hdfsrestapi来使用httplib
上传文件。在
我的程序创建了这个文件,但是里面没有内容。在
=======================================================
这是我的代码:
import httplib
conn=httplib.HTTPConnection("localhost:50070")
conn.request("PUT","/webhdfs/v1/levi/4?op=CREATE")
res=conn.getresponse()
print res.status,res.reason
conn.close()
conn=httplib.HTTPConnection("localhost:50075")
conn.connect()
conn.putrequest("PUT","/webhdfs/v1/levi/4?op=CREATE&user.name=levi")
conn.endheaders()
a_file=open("/home/levi/4","rb")
a_file.seek(0)
data=a_file.read()
conn.send(data)
res=conn.getresponse()
print res.status,res.reason
conn.close()
=====================================================
这是回报:
307 TEMPORARY_REDIRECT 201 Created
=============================================================
好的,文件已创建,但未发送任何内容。在
当我注释#conn.send(data)
时,结果是一样的,仍然没有内容。在
可能文件读取或发送错误,不确定。在
你知道这是怎么发生的吗?在
看起来您的代码没有在第二个PUT请求中使用307的“location”头。在
我一直在研究pythonwebhdfs包装器的一个分支,您可以在这里看到完整的代码:https://github.com/carlosmarin/webhdfs-py/blob/master/webhdfs/webhdfs.py
您感兴趣的方法是:
相关问题 更多 >
编程相关推荐