Solved it by comment this #*rgw print continue = false* . the reason is related with 100-continue. when python use S3, it force use HTTP Expect 100-continue , but i have disable rgw print. when python S3 upload file, Log include *HTTP_EXPECT=100-Continue* , so means when radosgw enable 100-continue, client can use either Expect 100-continue or no chose this. *2014-08-21 03:41:35.136895 7fb9e77fe700 20 enqueued request req=0x1da0540* *2014-08-21 03:41:35.136920 7fb9e77fe700 20 RGWWQ:* *2014-08-21 03:41:35.136921 7fb9e77fe700 20 req: 0x1da0540* *2014-08-21 03:41:35.136927 7fb9e77fe700 10 allocated request req=0x1cdbab0* *2014-08-21 03:41:35.136947 7fb9ce6cb700 20 dequeued request req=0x1da0540* *2014-08-21 03:41:35.136961 7fb9ce6cb700 20 RGWWQ: empty* *2014-08-21 03:41:35.137142 7fb9ce6cb700 20 CONTENT_LENGTH=53648693* *2014-08-21 03:41:35.137212 7fb9ce6cb700 20 CONTENT_TYPE=application/zip* *2014-08-21 03:41:35.137215 7fb9ce6cb700 20 DOCUMENT_ROOT=/var/www* *2014-08-21 03:41:35.137217 7fb9ce6cb700 20 FCGI_ROLE=RESPONDER* *2014-08-21 03:41:35.137219 7fb9ce6cb700 20 GATEWAY_INTERFACE=CGI/1.1* *2014-08-21 03:41:35.137221 7fb9ce6cb700 20 HTTP_ACCEPT_ENCODING=identity* *2014-08-21 03:41:35.137223 7fb9ce6cb700 20 HTTP_AUTHORIZATION=AWS VC8R6C193WDVKNTDCRKA:JHZnvKiOBWytJwwfJC95ZommG/U=* *2014-08-21 03:41:35.137225 7fb9ce6cb700 20 HTTP_CONTENT_MD5=IHXyFJhQAab7u4sn5Kh74Q==* *2014-08-21 03:41:35.137227 7fb9ce6cb700 20 HTTP_DATE=Thu, 21 Aug 2014 10:40:11 GMT* *2014-08-21 03:41:35.137229 7fb9ce6cb700 20 HTTP_EXPECT=100-Continue* *2014-08-21 03:41:35.137231 7fb9ce6cb700 20 HTTP_HOST=ceph-radosgw.lab.com <http://ceph-radosgw.lab.com>* *2014-08-21 03:41:35.137233 7fb9ce6cb700 20 HTTP_USER_AGENT=Boto/2.32.1 Python/2.7.6 Windows/7* *2014-08-21 03:41:35.137234 7fb9ce6cb700 20 PATH=/usr/local/bin:/usr/bin:/bin* *2014-08-21 03:41:35.137236 7fb9ce6cb700 20 QUERY_STRING=* *2014-08-21 03:41:35.137238 7fb9ce6cb700 20 REMOTE_ADDR=192.168.123.28* *2014-08-21 03:41:35.137240 7fb9ce6cb700 20 REMOTE_PORT=56320* *2014-08-21 03:41:35.137242 7fb9ce6cb700 20 REQUEST_METHOD=PUT* *2014-08-21 03:41:35.137244 7fb9ce6cb700 20 REQUEST_URI=/backup/v3.zip* *2014-08-21 03:41:35.137246 7fb9ce6cb700 20 SCRIPT_FILENAME=/var/www/s3gw.fcgi* *2014-08-21 03:41:35.137247 7fb9ce6cb700 20 SCRIPT_NAME=/backup/v3.zip* *2014-08-21 03:41:35.137249 7fb9ce6cb700 20 SCRIPT_URI=http://ceph-radosgw.lab.com/backup/v3.zip <http://ceph-radosgw.lab.com/backup/v3.zip>* *2014-08-21 03:41:35.137251 7fb9ce6cb700 20 SCRIPT_URL=/backup/v3.zip* *2014-08-21 03:41:35.137253 7fb9ce6cb700 20 SERVER_ADDR=192.168.123.191* use Dragondisk with S3 account, to upload file. it successfully(no select Expect 100-continue and radosgw disable 100-continue) . this is the Radosgw log, no HTTP Expect 100-continue. * root at ceph-radosgw:~# tail -f /var/log/ceph/client.radosgw.gateway.log* * 2014-08-21 03:51:31.875946 7fb9cb6c5700 15 supplied_md5_b64=IHXyFJhQAab7u4sn5Kh74Q==* * 2014-08-21 03:51:31.875951 7fb9cb6c5700 15 ceph_armor ret=16* * 2014-08-21 03:51:31.875958 7fb9cb6c5700 15 supplied_md5=2075f214985001a6fbbb8b27e4a87be1* * 2014-08-21 03:51:53.160537 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:52:01.904396 7fb9cb6c5700 2 req 18:30.029916:s3:PUT /backup/v3.zip:put_obj:http status=400* * 2014-08-21 03:52:01.904463 7fb9cb6c5700 1 ====== req done req=0x1de2a90 http_status=400 ======* * 2014-08-21 03:52:01.904647 7fb9cb6c5700 20 process_request() returned -2010* * 2014-08-21 03:52:15.160688 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:52:37.160838 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:52:59.160959 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:53:21.161285 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:53:43.161467 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* * 2014-08-21 03:53:43.950525 7fb9e77fe700 20 enqueued request req=0x1def4e0* * 2014-08-21 03:53:43.950565 7fb9e77fe700 20 RGWWQ:* * 2014-08-21 03:53:43.950570 7fb9e77fe700 20 req: 0x1def4e0* * 2014-08-21 03:53:43.950580 7fb9e77fe700 10 allocated request req=0x1df4fa0* * 2014-08-21 03:53:43.950605 7fb9c8ec0700 20 dequeued request req=0x1def4e0* * 2014-08-21 03:53:43.950612 7fb9c8ec0700 20 RGWWQ: empty* * 2014-08-21 03:53:43.950748 7fb9c8ec0700 20 DOCUMENT_ROOT=/var/www* * 2014-08-21 03:53:43.950754 7fb9c8ec0700 20 FCGI_ROLE=RESPONDER* * 2014-08-21 03:53:43.950755 7fb9c8ec0700 20 GATEWAY_INTERFACE=CGI/1.1* * 2014-08-21 03:53:43.950756 7fb9c8ec0700 20 HTTP_AUTHORIZATION=AWS VC8R6C193WDVKNTDCRKA:1MIxtVqAeLp0ygEu1NUoKHzw2ZI=* * 2014-08-21 03:53:43.950757 7fb9c8ec0700 20 HTTP_CONNECTION=Keep-Alive* * 2014-08-21 03:53:43.950758 7fb9c8ec0700 20 HTTP_DATE=Thu, 21 Aug 2014 10:53:42 GMT* * 2014-08-21 03:53:43.950759 7fb9c8ec0700 20 HTTP_HOST=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com>* * 2014-08-21 03:53:43.950760 7fb9c8ec0700 20 HTTP_USER_AGENT=DragonDisk 1.05 ( http://www.dragondisk.com <http://www.dragondisk.com> )* * 2014-08-21 03:53:43.950761 7fb9c8ec0700 20 PATH=/usr/local/bin:/usr/bin:/bin* * 2014-08-21 03:53:43.950762 7fb9c8ec0700 20 QUERY_STRING=* * 2014-08-21 03:53:43.950762 7fb9c8ec0700 20 REMOTE_ADDR=192.168.123.28* * 2014-08-21 03:53:43.950763 7fb9c8ec0700 20 REMOTE_PORT=56451* * 2014-08-21 03:53:43.950764 7fb9c8ec0700 20 REQUEST_METHOD=HEAD* * 2014-08-21 03:53:43.950765 7fb9c8ec0700 20 REQUEST_URI=/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.950766 7fb9c8ec0700 20 SCRIPT_FILENAME=/var/www/s3gw.fcgi* * 2014-08-21 03:53:43.950767 7fb9c8ec0700 20 SCRIPT_NAME=/add volume for vms.png* * 2014-08-21 03:53:43.950768 7fb9c8ec0700 20 SCRIPT_URI=http://backup.ceph-radosgw.lab.com/add <http://backup.ceph-radosgw.lab.com/add> volume for vms.png* * 2014-08-21 03:53:43.950769 7fb9c8ec0700 20 SCRIPT_URL=/add volume for vms.png* * 2014-08-21 03:53:43.950769 7fb9c8ec0700 20 SERVER_ADDR=192.168.123.191* * 2014-08-21 03:53:43.950771 7fb9c8ec0700 20 SERVER_ADMIN=onlydebian at gmail.com <onlydebian at gmail.com>* * 2014-08-21 03:53:43.950772 7fb9c8ec0700 20 SERVER_NAME=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com>* * 2014-08-21 03:53:43.950773 7fb9c8ec0700 20 SERVER_PORT=80* * 2014-08-21 03:53:43.950773 7fb9c8ec0700 20 SERVER_PROTOCOL=HTTP/1.1* * 2014-08-21 03:53:43.950774 7fb9c8ec0700 20 SERVER_SIGNATURE=* * 2014-08-21 03:53:43.950775 7fb9c8ec0700 20 SERVER_SOFTWARE=Apache/2.2.22 (Debian)* * 2014-08-21 03:53:43.950777 7fb9c8ec0700 1 ====== starting new request req=0x1def4e0 =====* * 2014-08-21 03:53:43.950796 7fb9c8ec0700 2 req 19:0.000019::HEAD /add%20volume%20for%20vms.png::initializing* * 2014-08-21 03:53:43.950802 7fb9c8ec0700 10 host=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com> rgw_dns_name=ceph-radosgw* * 2014-08-21 03:53:43.950953 7fb9c8ec0700 10 s->object=add volume for vms.png s->bucket=backup* * 2014-08-21 03:53:43.950962 7fb9c8ec0700 2 req 19:0.000185:s3:HEAD /add%20volume%20for%20vms.png::getting op* * 2014-08-21 03:53:43.950969 7fb9c8ec0700 2 req 19:0.000192:s3:HEAD /add%20volume%20for%20vms.png:get_obj:authorizing* * 2014-08-21 03:53:43.951044 7fb9c8ec0700 20 get_obj_state: rctx=0x1ccc0f0 obj=.users:VC8R6C193WDVKNTDCRKA state=0x1dee428 s->prefetch_data=0* * 2014-08-21 03:53:43.951108 7fb9c8ec0700 10 cache get: name=.users+VC8R6C193WDVKNTDCRKA : hit* * 2014-08-21 03:53:43.951126 7fb9c8ec0700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.951139 7fb9c8ec0700 10 cache get: name=.users+VC8R6C193WDVKNTDCRKA : hit* * 2014-08-21 03:53:43.951239 7fb9c8ec0700 20 get_obj_state: rctx=0x1dbf280 obj=.users.uid:johndoe state=0x1dee278 s->prefetch_data=0* * 2014-08-21 03:53:43.951256 7fb9c8ec0700 10 cache get: name=.users.uid+johndoe : hit* * 2014-08-21 03:53:43.951268 7fb9c8ec0700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.951278 7fb9c8ec0700 10 cache get: name=.users.uid+johndoe : hit* * 2014-08-21 03:53:43.951458 7fb9c8ec0700 10 get_canon_resource(): dest=/backup/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.951468 7fb9c8ec0700 10 auth_hdr:* * HEAD* * Thu, 21 Aug 2014 10:53:42 GMT* * /backup/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.951591 7fb9c8ec0700 15 calculated digest=1MIxtVqAeLp0ygEu1NUoKHzw2ZI=* * 2014-08-21 03:53:43.951598 7fb9c8ec0700 15 auth_sign=1MIxtVqAeLp0ygEu1NUoKHzw2ZI=* * 2014-08-21 03:53:43.951599 7fb9c8ec0700 15 compare=0* * 2014-08-21 03:53:43.951604 7fb9c8ec0700 2 req 19:0.000827:s3:HEAD /add%20volume%20for%20vms.png:get_obj:reading permissions* * 2014-08-21 03:53:43.951638 7fb9c8ec0700 20 get_obj_state: rctx=0x7fb9c8ebf240 obj=.rgw:backup state=0x1dfa398 s->prefetch_data=0* * 2014-08-21 03:53:43.951645 7fb9c8ec0700 10 cache get: name=.rgw+backup : hit* * 2014-08-21 03:53:43.951652 7fb9c8ec0700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.951654 7fb9c8ec0700 20 Read xattr: user.rgw.idtag* * 2014-08-21 03:53:43.951655 7fb9c8ec0700 20 Read xattr: user.rgw.manifest* * 2014-08-21 03:53:43.951658 7fb9c8ec0700 10 cache get: name=.rgw+backup : hit* * 2014-08-21 03:53:43.951671 7fb9c8ec0700 20 rgw_get_bucket_info: bucket instance: backup(@{i=.rgw.buckets.index,e=.rgw.buckets.extra}.rgw.buckets[default.37586.1])* * 2014-08-21 03:53:43.951679 7fb9c8ec0700 20 reading from .rgw:.bucket.meta.backup:default.37586.1* * 2014-08-21 03:53:43.951698 7fb9c8ec0700 20 get_obj_state: rctx=0x7fb9c8ebf240 obj=.rgw:.bucket.meta.backup:default.37586.1 state=0x1dfb118 s->prefetch_data=0* * 2014-08-21 03:53:43.951704 7fb9c8ec0700 10 cache get: name=.rgw+.bucket.meta.backup:default.37586.1 : hit* * 2014-08-21 03:53:43.951710 7fb9c8ec0700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.951721 7fb9c8ec0700 20 Read xattr: user.rgw.acl* * 2014-08-21 03:53:43.951723 7fb9c8ec0700 20 Read xattr: user.rgw.idtag* * 2014-08-21 03:53:43.951724 7fb9c8ec0700 20 Read xattr: user.rgw.manifest* * 2014-08-21 03:53:43.951727 7fb9c8ec0700 10 cache get: name=.rgw+.bucket.meta.backup:default.37586.1 : hit* * 2014-08-21 03:53:43.951750 7fb9c8ec0700 15 Read AccessControlPolicy<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/ <http://s3.amazonaws.com/doc/2006-03-01/>"><Owner><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>" xsi:type="CanonicalUser"><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>* * 2014-08-21 03:53:43.951804 7fb9c8ec0700 20 get_obj_state: rctx=0x7fb9c8ebf240 obj=backup:add volume for vms.png state=0x1dfc2d8 s->prefetch_data=1* * 2014-08-21 03:53:43.953730 7fb9c8ec0700 15 Read AccessControlPolicy<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/ <http://s3.amazonaws.com/doc/2006-03-01/>"><Owner><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>" xsi:type="CanonicalUser"><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>* * 2014-08-21 03:53:43.953766 7fb9c8ec0700 10 read_permissions on backup(@{i=.rgw.buckets.index,e=.rgw.buckets.extra}.rgw.buckets[default.37586.1]):add volume for vms.png only_bucket=0 ret=-2* * 2014-08-21 03:53:43.953825 7fb9c8ec0700 2 req 19:0.003049:s3:HEAD /add%20volume%20for%20vms.png:get_obj:http status=404* * 2014-08-21 03:53:43.953835 7fb9c8ec0700 1 ====== req done req=0x1def4e0 http_status=404 ======* * 2014-08-21 03:53:43.953860 7fb9c8ec0700 20 process_request() returned -2* * 2014-08-21 03:53:43.968745 7fb9e77fe700 20 enqueued request req=0x1df4fa0* * 2014-08-21 03:53:43.968767 7fb9e77fe700 20 RGWWQ:* * 2014-08-21 03:53:43.968769 7fb9e77fe700 20 req: 0x1df4fa0* * 2014-08-21 03:53:43.968774 7fb9e77fe700 10 allocated request req=0x1dfd5d0* * 2014-08-21 03:53:43.968797 7fb9ce6cb700 20 dequeued request req=0x1df4fa0* * 2014-08-21 03:53:43.968807 7fb9ce6cb700 20 RGWWQ: empty* * 2014-08-21 03:53:43.968871 7fb9ce6cb700 20 CONTENT_LENGTH=23890* * 2014-08-21 03:53:43.968875 7fb9ce6cb700 20 CONTENT_TYPE=image/png* * 2014-08-21 03:53:43.968876 7fb9ce6cb700 20 DOCUMENT_ROOT=/var/www* * 2014-08-21 03:53:43.968876 7fb9ce6cb700 20 FCGI_ROLE=RESPONDER* * 2014-08-21 03:53:43.968877 7fb9ce6cb700 20 GATEWAY_INTERFACE=CGI/1.1* * 2014-08-21 03:53:43.968878 7fb9ce6cb700 20 HTTP_AUTHORIZATION=AWS VC8R6C193WDVKNTDCRKA:RCNZ92xBCLgCRkSYEh4oAKThMlI=* * 2014-08-21 03:53:43.968879 7fb9ce6cb700 20 HTTP_CONNECTION=Keep-Alive* * 2014-08-21 03:53:43.968880 7fb9ce6cb700 20 HTTP_DATE=Thu, 21 Aug 2014 10:53:42 GMT* * 2014-08-21 03:53:43.968881 7fb9ce6cb700 20 HTTP_HOST=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com>* * 2014-08-21 03:53:43.968882 7fb9ce6cb700 20 HTTP_USER_AGENT=DragonDisk 1.05 ( http://www.dragondisk.com <http://www.dragondisk.com> )* * 2014-08-21 03:53:43.968883 7fb9ce6cb700 20 PATH=/usr/local/bin:/usr/bin:/bin* * 2014-08-21 03:53:43.968884 7fb9ce6cb700 20 QUERY_STRING=* * 2014-08-21 03:53:43.968885 7fb9ce6cb700 20 REMOTE_ADDR=192.168.123.28* * 2014-08-21 03:53:43.968885 7fb9ce6cb700 20 REMOTE_PORT=56451* * 2014-08-21 03:53:43.968886 7fb9ce6cb700 20 REQUEST_METHOD=PUT* * 2014-08-21 03:53:43.968887 7fb9ce6cb700 20 REQUEST_URI=/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.968888 7fb9ce6cb700 20 SCRIPT_FILENAME=/var/www/s3gw.fcgi* * 2014-08-21 03:53:43.968889 7fb9ce6cb700 20 SCRIPT_NAME=/add volume for vms.png* * 2014-08-21 03:53:43.968890 7fb9ce6cb700 20 SCRIPT_URI=http://backup.ceph-radosgw.lab.com/add <http://backup.ceph-radosgw.lab.com/add> volume for vms.png* * 2014-08-21 03:53:43.968890 7fb9ce6cb700 20 SCRIPT_URL=/add volume for vms.png* * 2014-08-21 03:53:43.968891 7fb9ce6cb700 20 SERVER_ADDR=192.168.123.191* * 2014-08-21 03:53:43.968892 7fb9ce6cb700 20 SERVER_ADMIN=onlydebian at gmail.com <onlydebian at gmail.com>* * 2014-08-21 03:53:43.968893 7fb9ce6cb700 20 SERVER_NAME=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com>* * 2014-08-21 03:53:43.968894 7fb9ce6cb700 20 SERVER_PORT=80* * 2014-08-21 03:53:43.968895 7fb9ce6cb700 20 SERVER_PROTOCOL=HTTP/1.1* * 2014-08-21 03:53:43.968896 7fb9ce6cb700 20 SERVER_SIGNATURE=* * 2014-08-21 03:53:43.968896 7fb9ce6cb700 20 SERVER_SOFTWARE=Apache/2.2.22 (Debian)* * 2014-08-21 03:53:43.968898 7fb9ce6cb700 1 ====== starting new request req=0x1df4fa0 =====* * 2014-08-21 03:53:43.968911 7fb9ce6cb700 2 req 20:0.000014::PUT /add%20volume%20for%20vms.png::initializing* * 2014-08-21 03:53:43.968916 7fb9ce6cb700 10 host=backup.ceph-radosgw.lab.com <http://backup.ceph-radosgw.lab.com> rgw_dns_name=ceph-radosgw* * 2014-08-21 03:53:43.968945 7fb9ce6cb700 10 s->object=add volume for vms.png s->bucket=backup* * 2014-08-21 03:53:43.968950 7fb9ce6cb700 2 req 20:0.000053:s3:PUT /add%20volume%20for%20vms.png::getting op* * 2014-08-21 03:53:43.968954 7fb9ce6cb700 2 req 20:0.000057:s3:PUT /add%20volume%20for%20vms.png:put_obj:authorizing* * 2014-08-21 03:53:43.969000 7fb9ce6cb700 20 get_obj_state: rctx=0x1dcb970 obj=.users:VC8R6C193WDVKNTDCRKA state=0x1dfe398 s->prefetch_data=0* * 2014-08-21 03:53:43.969016 7fb9ce6cb700 10 cache get: name=.users+VC8R6C193WDVKNTDCRKA : hit* * 2014-08-21 03:53:43.969028 7fb9ce6cb700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.969038 7fb9ce6cb700 10 cache get: name=.users+VC8R6C193WDVKNTDCRKA : hit* * 2014-08-21 03:53:43.969090 7fb9ce6cb700 20 get_obj_state: rctx=0x1dd42e0 obj=.users.uid:johndoe state=0x1dfea28 s->prefetch_data=0* * 2014-08-21 03:53:43.969101 7fb9ce6cb700 10 cache get: name=.users.uid+johndoe : hit* * 2014-08-21 03:53:43.969107 7fb9ce6cb700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.969112 7fb9ce6cb700 10 cache get: name=.users.uid+johndoe : hit* * 2014-08-21 03:53:43.969182 7fb9ce6cb700 10 get_canon_resource(): dest=/backup/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.969190 7fb9ce6cb700 10 auth_hdr:* * PUT* * image/png* * Thu, 21 Aug 2014 10:53:42 GMT* * /backup/add%20volume%20for%20vms.png* * 2014-08-21 03:53:43.969267 7fb9ce6cb700 15 calculated digest=RCNZ92xBCLgCRkSYEh4oAKThMlI=* * 2014-08-21 03:53:43.969272 7fb9ce6cb700 15 auth_sign=RCNZ92xBCLgCRkSYEh4oAKThMlI=* * 2014-08-21 03:53:43.969273 7fb9ce6cb700 15 compare=0* * 2014-08-21 03:53:43.969277 7fb9ce6cb700 2 req 20:0.000379:s3:PUT /add%20volume%20for%20vms.png:put_obj:reading permissions* * 2014-08-21 03:53:43.969308 7fb9ce6cb700 20 get_obj_state: rctx=0x7fb9ce6ca240 obj=.rgw:backup state=0x1e020d8 s->prefetch_data=0* * 2014-08-21 03:53:43.969315 7fb9ce6cb700 10 cache get: name=.rgw+backup : hit* * 2014-08-21 03:53:43.969321 7fb9ce6cb700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.969323 7fb9ce6cb700 20 Read xattr: user.rgw.idtag* * 2014-08-21 03:53:43.969324 7fb9ce6cb700 20 Read xattr: user.rgw.manifest* * 2014-08-21 03:53:43.969326 7fb9ce6cb700 10 cache get: name=.rgw+backup : hit* * 2014-08-21 03:53:43.969338 7fb9ce6cb700 20 rgw_get_bucket_info: bucket instance: backup(@{i=.rgw.buckets.index,e=.rgw.buckets.extra}.rgw.buckets[default.37586.1])* * 2014-08-21 03:53:43.969345 7fb9ce6cb700 20 reading from .rgw:.bucket.meta.backup:default.37586.1* * 2014-08-21 03:53:43.969363 7fb9ce6cb700 20 get_obj_state: rctx=0x7fb9ce6ca240 obj=.rgw:.bucket.meta.backup:default.37586.1 state=0x1e02e58 s->prefetch_data=0* * 2014-08-21 03:53:43.969369 7fb9ce6cb700 10 cache get: name=.rgw+.bucket.meta.backup:default.37586.1 : hit* * 2014-08-21 03:53:43.969375 7fb9ce6cb700 20 get_obj_state: s->obj_tag was set empty* * 2014-08-21 03:53:43.969377 7fb9ce6cb700 20 Read xattr: user.rgw.acl* * 2014-08-21 03:53:43.969380 7fb9ce6cb700 20 Read xattr: user.rgw.idtag* * 2014-08-21 03:53:43.969381 7fb9ce6cb700 20 Read xattr: user.rgw.manifest* * 2014-08-21 03:53:43.969386 7fb9ce6cb700 10 cache get: name=.rgw+.bucket.meta.backup:default.37586.1 : hit* * 2014-08-21 03:53:43.969417 7fb9ce6cb700 15 Read AccessControlPolicy<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/ <http://s3.amazonaws.com/doc/2006-03-01/>"><Owner><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>" xsi:type="CanonicalUser"><ID>johndoe</ID><DisplayName>John Doe</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>* * 2014-08-21 03:53:43.969432 7fb9ce6cb700 2 req 20:0.000535:s3:PUT /add%20volume%20for%20vms.png:put_obj:init op* * 2014-08-21 03:53:43.969441 7fb9ce6cb700 2 req 20:0.000543:s3:PUT /add%20volume%20for%20vms.png:put_obj:verifying op mask* * 2014-08-21 03:53:43.969446 7fb9ce6cb700 20 required_mask= 2 user.op_mask=7* * 2014-08-21 03:53:43.969449 7fb9ce6cb700 2 req 20:0.000552:s3:PUT /add%20volume%20for%20vms.png:put_obj:verifying op permissions* * 2014-08-21 03:53:43.969470 7fb9ce6cb700 5 Searching permissions for uid=johndoe mask=50* * 2014-08-21 03:53:43.969476 7fb9ce6cb700 5 Found permission: 15* * 2014-08-21 03:53:43.969478 7fb9ce6cb700 5 Searching permissions for group=1 mask=50* * 2014-08-21 03:53:43.969481 7fb9ce6cb700 5 Permissions for group not found* * 2014-08-21 03:53:43.969483 7fb9ce6cb700 5 Searching permissions for group=2 mask=50* * 2014-08-21 03:53:43.969485 7fb9ce6cb700 5 Permissions for group not found* * 2014-08-21 03:53:43.969487 7fb9ce6cb700 5 Getting permissions id=johndoe owner=johndoe perm=2* * 2014-08-21 03:53:43.969489 7fb9ce6cb700 10 uid=johndoe requested perm (type)=2, policy perm=2, user_perm_mask=2, acl perm=2* * 2014-08-21 03:53:43.969495 7fb9ce6cb700 2 req 20:0.000597:s3:PUT /add%20volume%20for%20vms.png:put_obj:verifying op params* * 2014-08-21 03:53:43.969501 7fb9ce6cb700 2 req 20:0.000604:s3:PUT /add%20volume%20for%20vms.png:put_obj:executing* * 2014-08-21 03:53:43.975162 7fb9ce6cb700 20 get_obj_state: rctx=0x7fb9ce6ca240 obj=backup:add volume for vms.png state=0x1e0d098 s->prefetch_data=0* * 2014-08-21 03:53:43.976875 7fb9ce6cb700 10 setting object write_tag=default.37972.20* * 2014-08-21 03:53:44.040127 7fb9ce6cb700 2 req 20:0.071229:s3:PUT /add%20volume%20for%20vms.png:put_obj:http status=200* * 2014-08-21 03:53:44.040153 7fb9ce6cb700 1 ====== req done req=0x1df4fa0 http_status=200 ======* * 2014-08-21 03:54:03.351446 7fb9ed1c7700 20 BucketsSyncThread: sync user=johndoe bucket=backup(@{i=.rgw.buckets.index,e=.rgw.buckets.extra}.rgw.buckets[default.37586.1])* * 2014-08-21 03:54:05.161643 7fb9eedd5700 2 RGWDataChangesLog::ChangesRenewThread: start* 2014-08-21 22:46 GMT+07:00 debian Only <onlydebian at gmail.com>: > my radosgw disbaled 100-continue > > [global] > fsid = 075f1aae-48de-412e-b024-b0f014dbc8cf > mon_initial_members = ceph01-vm, ceph02-vm, ceph04-vm > mon_host = 192.168.123.251,192.168.123.252,192.168.123.250 > auth_cluster_required = cephx > auth_service_required = cephx > auth_client_required = cephx > filestore_xattr_use_omap = true > > *rgw print continue = false* > rgw dns name = ceph-radosgw > osd pool default pg num = 128 > osd pool default pgp num = 128 > > #debug rgw = 20 > [client.radosgw.gateway] > host = ceph-radosgw > keyring = /etc/ceph/ceph.client.radosgw.keyring > rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock > log file = /var/log/ceph/client.radosgw.gateway.log > > > > 2014-08-21 22:42 GMT+07:00 debian Only <onlydebian at gmail.com>: > > when i use Dragondisk , i unselect Expect "100-continue " header , upload >> file sucessfully. when select this option, upload file will hang. >> >> maybe the python script can not upload file due to the 100-continue ?? >> my radosgw Apache2 not use 100-continue. >> >> if my guess is ture, how to disable this in python s3-connection and >> make python script working for upload file? >> >> >> >> 2014-08-21 20:57 GMT+07:00 debian Only <onlydebian at gmail.com>: >> >> i can upload file to RadosGW by s3cmd , and software Dragondisk. >>> >>> the script can list all bucket and all file in the bucket. but can not >>> from python s3. >>> ########### >>> #coding=utf-8 >>> __author__ = 'Administrator' >>> >>> #!/usr/bin/env python >>> import fnmatch >>> import os, sys >>> import boto >>> import boto.s3.connection >>> >>> access_key = 'VC8R6C193WDVKNTDCRKA' >>> secret_key = 'ASUWdUTx6PwVXEf/oJRRmDnvKEWp509o3rl1Xt+h' >>> >>> pidfile = "copytoceph.pid" >>> >>> >>> def check_pid(pid): >>> try: >>> os.kill(pid, 0) >>> except OSError: >>> return False >>> else: >>> return True >>> >>> >>> if os.path.isfile(pidfile): >>> pid = long(open(pidfile, 'r').read()) >>> if check_pid(pid): >>> print "%s already exists, doing natting" % pidfile >>> sys.exit() >>> >>> pid = str(os.getpid()) >>> file(pidfile, 'w').write(pid) >>> >>> conn = boto.connect_s3( >>> aws_access_key_id=access_key, >>> aws_secret_access_key=secret_key, >>> host='ceph-radosgw.lab.com', >>> port=80, >>> is_secure=False, >>> calling_format=boto.s3.connection.OrdinaryCallingFormat(), >>> ) >>> >>> print conn >>> mybucket = conn.get_bucket('foo') >>> print mybucket >>> mylist = mybucket.list() >>> print mylist >>> buckets = conn.get_all_buckets() >>> for bucket in buckets: >>> print "{name}\t{created}".format( >>> name=bucket.name, >>> created=bucket.creation_date, >>> ) >>> >>> for key in bucket.list(): >>> print "{name}\t{size}\t{modified}".format( >>> name=(key.name).encode('utf8'), >>> size=key.size, >>> modified=key.last_modified, >>> ) >>> >>> >>> key = mybucket.new_key('hello.txt') >>> print key >>> key.set_contents_from_string('Hello World!') >>> >>> ############### >>> >>> root at ceph-radosgw:~# python rgwupload.py >>> S3Connection:ceph-radosgw.lab.com >>> <Bucket: foo> >>> <boto.s3.bucketlistresultset.BucketListResultSet object at 0x1d6ae10> >>> backup 2014-08-21T10:23:08.000Z >>> add volume for vms.png 23890 2014-08-21T10:53:43.000Z >>> foo 2014-08-20T16:11:19.000Z >>> file0001.txt 29 2014-08-21T04:22:25.000Z >>> galley/DSC_0005.JPG 2142126 2014-08-21T04:24:29.000Z >>> galley/DSC_0006.JPG 2005662 2014-08-21T04:24:29.000Z >>> galley/DSC_0009.JPG 1922686 2014-08-21T04:24:29.000Z >>> galley/DSC_0010.JPG 2067713 2014-08-21T04:24:29.000Z >>> galley/DSC_0011.JPG 2027689 2014-08-21T04:24:30.000Z >>> galley/DSC_0012.JPG 2853358 2014-08-21T04:24:30.000Z >>> galley/DSC_0013.JPG 2844746 2014-08-21T04:24:30.000Z >>> iso 2014-08-21T04:43:16.000Z >>> pdf 2014-08-21T09:36:15.000Z >>> <Key: foo,hello.txt> >>> >>> it hanged at here. >>> >>> Same error when i run this script on radosgw host. >>> >>> Traceback (most recent call last): >>> File "D:/Workspace/S3-Ceph/test.py", line 65, in <module> >>> key.set_contents_from_string('Hello World!') >>> File "c:\Python27\lib\site-packages\boto\s3\key.py", line 1419, in >>> set_contents_from_string >>> encrypt_key=encrypt_key) >>> File "c:\Python27\lib\site-packages\boto\s3\key.py", line 1286, in >>> set_contents_from_file >>> chunked_transfer=chunked_transfer, size=size) >>> File "c:\Python27\lib\site-packages\boto\s3\key.py", line 746, in >>> send_file >>> chunked_transfer=chunked_transfer, size=size) >>> File "c:\Python27\lib\site-packages\boto\s3\key.py", line 944, in >>> _send_file_internal >>> query_args=query_args >>> File "c:\Python27\lib\site-packages\boto\s3\connection.py", line 664, >>> in make_request >>> retry_handler=retry_handler >>> File "c:\Python27\lib\site-packages\boto\connection.py", line 1053, in >>> make_request >>> retry_handler=retry_handler) >>> File "c:\Python27\lib\site-packages\boto\connection.py", line 1009, in >>> _mexe >>> raise BotoServerError(response.status, response.reason, body) >>> boto.exception.BotoServerError: BotoServerError: 500 Internal Server >>> Error >>> None >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.ceph.com/pipermail/ceph-users-ceph.com/attachments/20140821/b0f6d8f0/attachment.htm>