2017-08-17 40 views
0

我的目标是上传文件,这是我的代码如下所示:上传文件通过文件HDFS API结果HDFS得到附加与前置签名

headers = { 
    'Some_Auth_Stuff': _get_ca_cert(ROLE), 
    'Host': host, 
} 

files = {'upload_file': file} 

params = (
    ('op', 'create'), 
    ('permission', '755') 
) 

r = requests.put(
    'https://proxystuff.hostname.com/fs%s' % hue_path, 
    headers=headers, files=files, params=params) 

if r.status_code == 201: 
    return True 
return False 

,我上传这个文件:

i am a test file 

我得到一个201的响应,这是伟大的,但是当我看一下这个文件,它看起来像这样:

--04dc34a8a49d4b83878473d6d78e683d 
Content-Disposition: form-data; name="upload_file"; filename="testfile" 

i am a test file 

--04dc34a8a49d4b83878473d6d78e683d-- 

上传内容时我错过了些什么?任何方式来禁用文件获取东西前置和附加?

编辑: 如果我用这个curl命令它工作正常

curl -c cookie -b cookie -T "test.txt" "https://proxystuff.hostname.com/fs/user/stupidfatcat/test.txt?op=create&permission=755" -H "Some_Auth_Stuff:blahblah" -H "Host:someotherhost_with_hadoop.com:4443" 

回答

0

尝试一些东西出来,如果我把它改成

headers=headers, data=file.read(), params=params 

后,我设置的内容类型为纯/文本工作正常,似乎它不喜欢文件参数。