2009-09-17 8 views
7

Attualmente sto giocando con couchdb e testando la funzionalità 'allegati autonomi', che è descritta nella parte inferiore di this page.Creazione di un allegato standalone couchdb utilizzando cURL

Sto tentando di utilizzare la funzione --data-urlencode di curl per inviare la richiesta di creazione, che funziona solo a metà. Posso creare l'allegato e recuperarlo, ma il campo Content-Type è sbagliato, quindi l'immagine non verrà visualizzata correttamente.

Per essere più precisi CouchDB sembra funzionare restituendo l'allegato utilizzando lo stesso Content-Type in cui è stato pubblicato. (Che è perfettamente ragionevole IMO) Il mio problema è arricciare non invia il codice corretto. Ecco i dettagli;

curl -vX PUT http://localhost:5984/dafttest/666/attachment --data-urlencode image/[email protected]_on_beach.jpg 
* About to connect() to localhost port 5984 (#0) 
* Trying 127.0.0.1... connected 
* Connected to localhost (127.0.0.1) port 5984 (#0) 
> PUT /dafttest/666/attachment HTTP/1.1 
> User-Agent: curl/7.19.4 (x86_64-pc-linux-gnu) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3 
> Host: localhost:5984 
> Accept: */* 
> Content-Length: 495389 
> Content-Type: application/x-www-form-urlencoded 
> Expect: 100-continue 
> 

Quindi la versione breve di questa domanda è; come posso ottenere cURL per inviare il Content-Type corretto?

EDIT:

ho comunicato che il mio altro errore è stato quello di utilizzare --data-urlencode, quando per farlo funzionare ho bisogno di usare --data @nomefile binario insieme con l'opzione -H che Dale ha suggerito .

risposta

5

È possibile add headers with the -H/--header switch, in modo da aggiungere un'intestazione per tipo di contenuto image/jpeg, aggiungere questo al comando:

-H "Content-Type: image/jpeg"

+0

anche io necessario --data-binary @filename not --data-urlencoded, ho modificato il mio post nel caso in cui qualcun altro si imbattesse in questo. –

Problemi correlati