通过hdfs API将文件上传到hdfs会导致文件被追加并附加签名

时间:2017-08-17 17:43:39

标签: hadoop 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"

1 个答案:

答案 0 :(得分:0)

尝试了一些东西之后,如果我把它改成

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

我将Content-Type设置为plain / text它工作正常,看起来它不像文件参数。