Project

General

Profile

Actions

Bug #21195

closed

calling the PutObject operation: Method Not Allowed

Added by stefan bo over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Community (user)
Tags:
Backport:
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

I have a 20 node cluster (3 mons, 3 rgw, 14 osd) behind groups https CDN with a domainname
All progress is request https://club-img.xxxx.cn cname-> CDN domain --> http://src.domain(nginx)-->rgw(rgw is service on port 80)

when I send a api request with domainname in python boto3 to create bucket or put object into ceph, it return 405. But `list bucket` is ok.

rgw log file like this:

2017-08-31 13:51:09.927220 7f0fd8ff9700 2 RGWDataChangesLog::ChangesRenewThread: start
2017-08-31 13:51:10.813068 7f0df7fff700 20 RGWEnv::set(): HTTP_HOST: club-img.xxxx.cn
2017-08-31 13:51:10.813087 7f0df7fff700 20 RGWEnv::set(): HTTP_X_FORWARDED_FOR: 58.50.31.21
2017-08-31 13:51:10.813090 7f0df7fff700 20 RGWEnv::set(): HTTP_CONNECTION: close
2017-08-31 13:51:10.813093 7f0df7fff700 20 RGWEnv::set(): CONTENT_LENGTH: 316161
2017-08-31 13:51:10.813095 7f0df7fff700 20 RGWEnv::set(): HTTP_X_AMZ_CONTENT_SHA256: UNSIGNED-PAYLOAD
2017-08-31 13:51:10.813099 7f0df7fff700 20 RGWEnv::set(): HTTP_X_AMZ_ACL: private
2017-08-31 13:51:10.813102 7f0df7fff700 20 RGWEnv::set(): HTTP_USER_AGENT: Boto3/1.4.4 Python/2.7.13 Windows/10 Botocore/1.5.86
2017-08-31 13:51:10.813105 7f0df7fff700 20 RGWEnv::set(): HTTP_X_AMZ_DATE: 20170831T055121Z
2017-08-31 13:51:10.813107 7f0df7fff700 20 RGWEnv::set(): HTTP_CONTENT_MD5: 7W35yB/Oo39Wo3CWyBBEdQ==
2017-08-31 13:51:10.813110 7f0df7fff700 20 RGWEnv::set(): HTTP_AUTHORIZATION: AWS4-HMAC-SHA256 Credential=LJ8398P5398U15AVFN4B/20170831/us-east-1/s3/aws4_request, SignedHeaders=content-md5;host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=76e2e5f03fd1f5b19955a18a6d5ca41c7cf111aad5e80e01d4e45592544286c2
2017-08-31 13:51:10.813118 7f0df7fff700 20 RGWEnv::set(): HTTP_CDN_SRC_IP: 58.49.117.118
2017-08-31 13:51:10.813121 7f0df7fff700 20 RGWEnv::set(): HTTP_X_VIA: 1.1 dianxin81:0 (Cdn Cache Server V2.0)
2017-08-31 13:51:10.813123 7f0df7fff700 20 RGWEnv::set(): REQUEST_METHOD: PUT
2017-08-31 13:51:10.813125 7f0df7fff700 20 RGWEnv::set(): REQUEST_URI: //test.jpg
2017-08-31 13:51:10.813128 7f0df7fff700 20 RGWEnv::set(): QUERY_STRING:
2017-08-31 13:51:10.813129 7f0df7fff700 20 RGWEnv::set(): REMOTE_USER:
2017-08-31 13:51:10.813131 7f0df7fff700 20 RGWEnv::set(): SCRIPT_URI: //test.jpg
2017-08-31 13:51:10.813135 7f0df7fff700 20 RGWEnv::set(): SERVER_PORT: 80
2017-08-31 13:51:10.813136 7f0df7fff700 20 CONTENT_LENGTH=316161
2017-08-31 13:51:10.813138 7f0df7fff700 20 HTTP_AUTHORIZATION=AWS4-HMAC-SHA256 Credential=LJ8398P5398U15AVFN4B/20170831/us-east-1/s3/aws4_request, SignedHeaders=content-md5;host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=76e2e5f03fd1f5b19955a18a6d5ca41c7cf111aad5e80e01d4e45592544286c2
2017-08-31 13:51:10.813144 7f0df7fff700 20 HTTP_CDN_SRC_IP=58.49.117.118
2017-08-31 13:51:10.813146 7f0df7fff700 20 HTTP_CONNECTION=close
2017-08-31 13:51:10.813147 7f0df7fff700 20 HTTP_CONTENT_MD5=7W35yB/Oo39Wo3CWyBBEdQ==
2017-08-31 13:51:10.813149 7f0df7fff700 20 HTTP_HOST=club-img.douyucdn.cn
2017-08-31 13:51:10.813151 7f0df7fff700 20 HTTP_USER_AGENT=Boto3/1.4.4 Python/2.7.13 Windows/10 Botocore/1.5.86
2017-08-31 13:51:10.813154 7f0df7fff700 20 HTTP_X_AMZ_ACL=private
2017-08-31 13:51:10.813155 7f0df7fff700 20 HTTP_X_AMZ_CONTENT_SHA256=UNSIGNED-PAYLOAD
2017-08-31 13:51:10.813157 7f0df7fff700 20 HTTP_X_AMZ_DATE=20170831T055121Z
2017-08-31 13:51:10.813160 7f0df7fff700 20 HTTP_X_FORWARDED_FOR=58.50.31.21
2017-08-31 13:51:10.813162 7f0df7fff700 20 HTTP_X_VIA=1.1 dianxin81:0 (Cdn Cache Server V2.0)
2017-08-31 13:51:10.813164 7f0df7fff700 20 QUERY_STRING=
2017-08-31 13:51:10.813165 7f0df7fff700 20 REMOTE_USER=
2017-08-31 13:51:10.813167 7f0df7fff700 20 REQUEST_METHOD=PUT
2017-08-31 13:51:10.813169 7f0df7fff700 20 REQUEST_URI=//test.jpg
2017-08-31 13:51:10.813170 7f0df7fff700 20 SCRIPT_URI=//test.jpg
2017-08-31 13:51:10.813172 7f0df7fff700 20 SERVER_PORT=80
2017-08-31 13:51:10.813175 7f0df7fff700 1 ====== starting new request req=0x7f0df7ff9710 =====
2017-08-31 13:51:10.813211 7f0df7fff700 2 req 45:0.000036::PUT //test.jpg::initializing for trans_id = tx00000000000000000002d-0059a7a3ce-1d67-default
2017-08-31 13:51:10.813227 7f0df7fff700 10 rgw api priority: s3=4 s3website=-1
2017-08-31 13:51:10.813231 7f0df7fff700 10 host=club-img.douyucdn.cn
2017-08-31 13:51:10.813235 7f0df7fff700 20 subdomain= domain= in_hosted_domain=0 in_hosted_domain_s3website=0
2017-08-31 13:51:10.813240 7f0df7fff700 20 final domain/bucket subdomain= domain= in_hosted_domain=0 in_hosted_domain_s3website=0 s->info.domain= s->info.request_uri=//test.jpg
2017-08-31 13:51:10.813262 7f0df7fff700 10 meta>> HTTP_X_AMZ_ACL
2017-08-31 13:51:10.813270 7f0df7fff700 10 meta>> HTTP_X_AMZ_CONTENT_SHA256
2017-08-31 13:51:10.813276 7f0df7fff700 10 meta>> HTTP_X_AMZ_DATE
2017-08-31 13:51:10.813284 7f0df7fff700 10 x>> x-amz-acl:private
2017-08-31 13:51:10.813286 7f0df7fff700 10 x>> x-amz-content-sha256:UNSIGNED-PAYLOAD
2017-08-31 13:51:10.813287 7f0df7fff700 10 x>> x-amz-date:20170831T055121Z
2017-08-31 13:51:10.813324 7f0df7fff700 20 get_handler handler=26RGWHandler_REST_Service_S3
2017-08-31 13:51:10.813333 7f0df7fff700 10 handler=26RGWHandler_REST_Service_S3
2017-08-31 13:51:10.813336 7f0df7fff700 2 req 45:0.000161:s3:PUT //test.jpg::getting op 1
2017-08-31 13:51:10.813342 7f0df7fff700 20 handler->ERRORHANDLER: err_no=-2003 new_err_no=-2003
2017-08-31 13:51:10.813452 7f0df7fff700 2 req 45:0.000276:s3:PUT //test.jpg::op status=0
2017-08-31 13:51:10.813462 7f0df7fff700 2 req 45:0.000287:s3:PUT //test.jpg::http status=405
2017-08-31 13:51:10.813467 7f0df7fff700 1 ====== req done req=0x7f0df7ff9710 op status=0 http_status=405 ======
2017-08-31 13:51:10.813483 7f0df7fff700 20 process_request() returned -2003
2017-08-31 13:51:10.813986 7f0df7fff700 1 civetweb: 0x7f0de40008c0: 10.11.0.82 - - [31/Aug/2017:13:51:10 +0800] "PUT //test.jpg HTTP/1.1" 405 0 - Boto3/1.4.4 Python/2.7.13 Windows/10 Botocore/1.5.86

Actions #1

Updated by stefan bo over 6 years ago

Python codeļ¼š

import boto3
from botocore.client import Config

s3client = boto3.client(
's3',
aws_secret_access_key=secret_key,
aws_access_key_id=access_key,
endpoint_url=ceph_host,
config=Config(signature_version='s3v4')
)

bucket_name = "zeus-priv-bucket"
s3client.create_bucket(Bucket=bucket_name)

response = s3client.list_buckets()
buckets = [bucket['Name'] for bucket in response['Buckets']]

filename = 'C:\Users\zhubo\Pictures\\test.jpg'
key_name = 'test.jpg'

s3client.upload_file(filename, bucket_name, key_name, ExtraArgs={'ACL': 'private'})

url = s3client.generate_presigned_url(
ClientMethod='get_object',
Params={
'Bucket': bucket_name,
'Key': key_name,
},
ExpiresIn=120
)

print url

Actions #2

Updated by stefan bo over 6 years ago

figure out.
Sorry, problem is nginx proxy_pass, loss the bucketname.

Actions #3

Updated by Abhishek Lekshmanan over 6 years ago

  • Status changed from New to Need More Info

Is this still valid?

Actions #4

Updated by stefan bo over 6 years ago

Abhishek Lekshmanan wrote:

Is this still valid?

Just my mistake

nginx conf localtion /bucketname { proxy_pass http://rgw/ } // loss the bucketname
nginx conf localtion /bucketname { proxy_pass http://rgw/bucketname } // correct

ceph rgw is fine.

Actions #5

Updated by Abhishek Lekshmanan over 6 years ago

  • Status changed from Need More Info to Closed
Actions

Also available in: Atom PDF