2016-08-24 10 views
0

Jetに直接お問い合わせして、「zzipを使ってファイルをgzipしようとしました」というメッセージが表示されました。Jet API bulk JSONアップロード:GZipヘッダーのマジックナンバーが正しくありません

ここではエラーコードです:

ここ
"error_excerpt": [ 
    "Error parsing file: The magic number in GZip header is not correct. Make sure you are passing in a GZip stream." 
    ], 

は私がしようとしているものです:あなたは別のコールでチェック

def file_upload_url(self, url, filename, data): 
    headers = {"x-ms-blob-type": "blockblob"} 
    magic_number = open(filename, 'rb').read(2) # shows that magic number is correct for .gz file 
    print `magic_number` 
    with open(filename, 'rb') as f: 
     file_data=f.read() 
    response = requests.put(url, headers=headers, files={ "test.json.gz": file_data }) 
    # i've also tried data={"test.json.gz": file_data} 

。このファイルはUbuntuのコマンドラインからgzipされています(問題の原因となるPythonのgzipモジュールを除外するため)。 https://developer.jet.com/docs/

を、私は少しもしゃっくりせずに、他のすべての機能を実装しましたが、これは単に動作していない。ここで

が提供されているドキュメントです。私が考えることができるのは、どうにか私はファイルデータを間違って送信しているということだけです。しかし、私はどのように把握することはできません。

.jsonファイルがJetの担当者から有効であることが確認されました。

答えて

2

答えを見つけました。要求のdataパラメーターの中にバイナリー・データ(ファイルのような辞書ではない)のみを置くようにしなければなりません。それを作る

def file_upload_url(self, url, filename, data): 
    headers = {"x-ms-blob-type": "blockblob"} 
    with open(filename, 'rb') as f: 
     file_data=f.read() 
    response = requests.put(url, headers=headers, data=file_data) 

ニースと簡単。

関連する問題