curl -sIX HEAD двоичный файл - PullRequest
       10

curl -sIX HEAD двоичный файл

1 голос
/ 01 сентября 2011
#!/bin/bash

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

HEAD=`curl -sIX HEAD http://gert.iriscouch.com/www/test/user.png`
echo "$HEAD"
if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then
 echo "${BASH_REMATCH[1]}"
fi

На втором ГОЛОВЕ он не совпадает с Etag?

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:02 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 207
Cache-Control: must-revalidate

2-bd7278b9cc8b0ddaf7c863102f42f246

HTTP/1.1 200 OK
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"
Date: Thu, 01 Sep 2011 19:47:03 GMT
Content-Type: image/png
Content-MD5: SS+3YnbRbRQ4uiJKcnFkdA==
Content-Length: 4003
Cache-Control: must-revalidate
Accept-Ranges: bytes

Ответы [ 2 ]

2 голосов
/ 03 сентября 2011

С http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

Имена полей не чувствительны к регистру.

Ошибка в вашем коде, 'ETAG', 'etag', 'ETag' и 'Etag' являются одинаково действительными выражениями значения заголовка.

Однако я изменил CouchDB в следующей версии (1.2), чтобы последовательно использовать 'ETag' по принципу "будь строг в том, что ты посылаешь".

2 голосов
/ 02 сентября 2011

Дело в другом.

if [[ $HEAD =~ Etag:\ \"(.*)\" ]]; then


Etag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

ETag: "2-bd7278b9cc8b0ddaf7c863102f42f246"

использовать

if [[ $HEAD =~ [Ee][Tt][Aa][Gg]:\ \"(.*)\" ]]; then

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...