I did end up switching to civetweb and I also found that rgw content length compat, which I set to true. I am still getting the 411 Length required issue.
I have had more discussions with our testing team, and I am still trying to ascertain how valid this issue is.
With AWS Sig v4, you use a different method to do chunked transfers. With the sigv2, you do it as a "Transfer-Encoding: chunked" (as detailed in my s3curl example). However, that v2 method may only apply to the implementation we have have (we have a proprietary implementation of s3 that I am hoping to replace with Ceph, if I can match our acceptance testing).
The reason I think that this is a valid issue is because of this commit
Fixes: #2878
We now allow complete multipart upload to use chunked encoding
when sending request data. With chunked encoding the HTTP_LENGTH
header is not required.
What I would like to see is the test code for this (ideally in a curl or s3curl format) so that I can compare locally to see if we're saying the same thing, or if that commit from 3 years ago is still valid.
-John
On Wed, Jan 27, 2016 at 5:49 PM, Krzysztof Księżyk <kksiezyk@xxxxxxxxx> wrote:
On Mon, 2016-01-25 at 16:06 -0500, John Hogenmiller wrote:Greetings,
When I submit a request with "Transfer-Encoding: chunked", I get a 411 Length required error back. It's very similar to http://tracker.ceph.com/issues/3297 except I am running the ceph version of fastcgi. Ceph does not appear to produce apache2 2.4 versions, I am running upstream Apache from Ubuntu on 14.04 LTS.
My apache and ceph.conf files are at: https://gist.github.com/ytjohn/da854151d8d360b927d0
Versions:* Ceph 9.2.0.1trusty* apache2: 2.4.7-1ubuntu4.8* libapache2-mod-fastcgi: 2.4.7~0910052141-ceph1
Example session:
~ s3curl.pl --id iphone_lab --put=1mb.img --debug -- --header "Transfer-Encoding: chunked" http://172.29.4.148/chunkedbucket2ip/imb.imgs3curl: exec curl -v -H 'Date: Mon, 25 Jan 2016 19:34:06 +0000' -H 'Authorization: AWS iphone_lab:i/l3AJ0C5pc/nSUUcwn7943ag10=' -L -H 'content-type: ' -T 1mb.img --header 'Transfer-Encoding: chunked' http://172.29.4.148/chunkedbucket2ip/imb.img* Trying 172.29.4.148...* Connected to 172.29.4.148 (172.29.4.148) port 80 (#0)> PUT /chunkedbucket2ip/imb.img HTTP/1.1> Host: 172.29.4.148> User-Agent: curl/7.43.0> Accept: */*> Date: Mon, 25 Jan 2016 19:34:06 +0000> Authorization: AWS iphone_lab:i/l3AJ0C5pc/nSUUcwn7943ag10=> Transfer-Encoding: chunked> Expect: 100-continue>< HTTP/1.1 100 Continue< HTTP/1.1 411 Length Required< Date: Mon, 25 Jan 2016 19:34:06 GMT< Server: Apache/2.4.7 (Ubuntu)< x-amz-request-id: tx00000000000000001fda9-0056a678ae-10da-default< Accept-Ranges: bytes< Content-Length: 156< Connection: close< Content-Type: application/xml<* Closing connection 0<?xml version="1.0" encoding="UTF-8"?><Error><Code>MissingContentLength</Code><RequestId>tx00000000000000001fda9-0056a678ae-10da-default</RequestId></Error>
In addition to my previous message - I was just reading messages on this mailing list and found in one post that_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
setting "rgw content length compat" to true, should solve this issue.
Kind regards -
Krzysztof Księżyk
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com