簡體   English   中英

批處理到ArangoDB的請求失敗

[英]Batch Requests into ArangoDB failing

我正在嘗試將成千上萬的記錄導入Arango。 我嘗試使用以下網址中介紹的Arango的批量/批量導入功能: https ://docs.arangodb.com/3.0/HTTP/BatchRequest/index.html結合使用PUT和POST請求來插入新記錄,或更新現有記錄(如果已存在)。 我的最終解決方案需要從Python腳本運行,大概使用pyArango。 我創建了一個示例HTTP請求

POST http://<arango_server>:8529/_db/myDB/_api/batch

看起來類似於以下內容:

Content-Type: multipart/form-data; boundary=P1X7QNCB
Content-Length: <calculated by python or REST Client>
Authorization: Basic <calculated by python requests session or REST Client>

--P1X7QNCB
Content-type: application/x-arango-batchpart
Content-Id: 1

POST /_api/document/model/foo HTTP/1.1


{"data": "bar"}
--P1X7QNCB

我無法在Arango中成功處理此問題。 我嘗試使用類似於以下內容的python(即使上面的代碼近似輸入有錯字,也會生成上述請求):

url = "/_api/document/" + collection + "/" + nodeKey + " HTTP/1.1"
postString = ("--P1X7QNCB\r\n"
              "Content-type: application/x-arango-batchpart\r\n"
              "Content-Id: " + str(counter) +  "\r\n"
              "\r\n"
              "\r\n"
              "PUT " + url+ "\r\n\r\n\r\n" + json.dumps(nodeData) + "\r\n")
batchHeaders = {"Content-Type": "multipart/form-data; boundary=P1X7QNCB"}
response = self.db.connection.session.post(self.db.URL + "/batch", data=postString, headers=batchHeaders)

並在我手動發布內容的地方使用REST客戶端。 在這兩種情況下,我都會收到以下響應:

{"error":true,"errorMessage":"invalid multipart message received","code":400,"errorNum":400}

並在arango日志文件中記錄以下內容:

WARNING received a corrupted multipart message

對於任何人來說,我做錯了什么是顯而易見的,還是我可以在哪里查找有關ArangoDB為什么拒絕請求的更多詳細信息?

謝謝!

當ArangoDB嘗試提取多部分mime容器下一部分而失敗時,將拋出此錯誤。

您應該檢查邊界字符串,並檢查最后一個字符串是否正確地以兩個尾划線( -- )終止了容器。

NGrepWireshark在檢查程序真正發送的內容時通常非常有用-有時可能不是您想的那樣-甚至從其他程序中獲取如何執行此操作的樣本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM