2017-08-17 1 views
0

Mon but est de télécharger un fichier, c'est ce que mon code ressemble à:Charger un fichier HDFS par les résultats de l'API HDFS dans le fichier se Concaténé et préfixés par la signature

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 

et je télécharger ce fichier :

i am a test file 

je reçois une réponse 201, ce qui est génial, mais quand je regarde le fichier, il ressemble à ceci:

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

i am a test file 

--04dc34a8a49d4b83878473d6d78e683d-- 

Est-ce qu'il me manque quelque chose quand il s'agit de télécharger du contenu? Est-il possible de désactiver le fichier et d'y ajouter des ajouts?

EDIT: Si j'utilise cette commande curl il fonctionne très bien

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" 

Répondre

0

Après avoir essayé quelques trucs sur, si je l'ai changé

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

et je définir le type de contenu à la plaine/text ça marche bien, on dirait qu'il n'aime pas le param.