簡體   English   中英

問題在CouchDB中添加文檔附件

[英]Issue adding attachments to documents in CouchDB

我在CouchDB中添加附件時遇到問題。 首先,當我在Futon運行測試套件時,我遇到了兩個錯誤 - 一個在附件中,另一個在復制中。 附件特有的錯誤不是特別有用 -

name
    attachments
status
    error
duration
    6112
details
    0
    Exception raised: {}

一些互聯網評論說,測試套件中的一些錯誤是完全正常的,所以我繼續前進。 但是,通過Futon或Curl,附件肯定無法正常工作。 在Futon中,文件通常會附加,但只有在我點擊上傳后取消 - 即它會無限期地掛起在上傳進度條上,直到我點擊取消。 我通過ssh -L5984:127.0.0.1:5984 root @ myServer在遠程計算機上訪問蒲團,然后將Firefox指向localhost:5984 / _utils /。 我不知道這是否會有所作為。

當我嘗試通過Curl上傳時,使用該命令

curl -vX PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/ artwork.jpg?rev=9--43332bfae07884c683b50ffd4b8ee18c --data-binary @artwork.jpg -H "Content-Type: image/jpg"

我明白了:

主持人:127.0.0.1:5984接受: / Content-Type:image / jpg內容長度:11205期待:100-continue

< HTTP/1.1 100 Continue
< HTTP/1.1 400 Bad Request
* HTTP error before end of send, stop sending
{"error":"bad_request","reason":"invalid UTF-8 JSON"}

日志文件顯示:

[debug] [<0.103.0>] 'PUT' /albums/6e1295ed6c29495e54cc05947f18c8af/ {1,1}
Headers: [{'Accept',"*/*"},
      {'Content-Length',"11205"},
      {'Content-Type',"image/jpg"},
      {"Expect","100-continue"},
      {'Host',"127.0.0.1:5984"},
      {'User-Agent',"curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3"}]

[debug] [<0.103.0>] OAuth Params: []

[error] [<0.103.0>] attempted upload of invalid JSON (set log_level to debug to log it)

接下來是一個巨大的街區 -

[debug] [<0.103.0>] Invalid JSON:   
<<255,216,255,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0,255,219,0,132, ... , etc

日志中與嘗試上載相關的最后兩行是

[info] [<0.103.0>] 127.0.0.1 - - 'PUT' /albums/6e1295ed6c29495e54cc05947f18c8af/ 400
[debug] [<0.103.0>] httpd 400 error response: {"error":"bad_request","reason":"invalid UTF-8 JSON"}

有誰知道這里發生了什么? 我嘗試將字符串包裹在卷曲請求中,以防萬一bash正在吃引號,它沒有任何區別。

在doc id和attachement之間的斜杠之后,curl命令中有一個虛假的空間:

...f18c8af/ artwork.jpg?...
           ^

你刪除它是否有效?

有兩個問題。 第一個是Simon指出的虛假空間 - tyvm。 另一個問題是放置rev-x細節的地方。 我使用的是http://guide.couchdb.org/editions/1/en/api.html一書中的格式。

原始命令:

curl -vX PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/ artwork.jpg?rev=9--43332bfae07884c683b50ffd4b8ee18c --data-binary @artwork.jpg -H "Content-Type: image/jpg"

工作命令(空格被刪除和轉換順序正確):

curl -vX PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/attachment?rev=9-43332bfae07884c683b50ffd4b8ee18c --data-binary @artwork.jpg -H "Content-Type: image/jpg"

暫無
暫無

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

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