2017-08-17 57 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 

後,我設置的內容類型爲純/文本工作正常,似乎它不喜歡文件參數。