2009-09-17 15 views
7

Aktualnie odtwarzam z couchdb i testuję funkcję "samodzielnych załączników", która jest opisana u dołu this page.Tworzenie samodzielnego załącznika couchdb przy użyciu cURL

Próbuję użyć funkcji curl's --data-urlencode, aby wysłać żądanie utworzenia, które tylko połowa działa. Mogę utworzyć załącznik i pobrać go, ale pole Content-Type jest nieprawidłowe, więc obraz nie będzie wyświetlany poprawnie.

Aby być bardziej dokładnym CouchDB wydaje się działać, zwracając załącznik za pomocą tego samego typu zawartości, w którym został wysłany. (Co jest całkowicie sensownym IMO) Mój problem polega na tym, że curl nie wysyła poprawnego kodu. Oto szczegóły;

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 
> 

Krótka wersja tego pytania jest; jak uzyskać cURL, aby wysłać prawidłowy typ zawartości?

EDIT:

zwalniam, że mój drugi błędem było użycie --data-urlencode, kiedy się zmusić go do pracy trzeba użyć --data @filename binarny wraz z opcją -h że Dale sugerowanej .

Odpowiedz

5

Można add headers with the -H/--header switch, tak aby dodać nagłówek image/jpeg typu zawartości, dodać do polecenia:

H "Content-Type: image/jpeg"

+0

również potrzebna --data-binary @filename not --data-urlencoded, Edytowałem swój post na wypadek, gdyby ktoś inny na to wpadł. –

Powiązane problemy