本文整理汇总了Python中swift.common.swob.Response.headers["Location"]方法的典型用法代码示例。如果您正苦于以下问题:Python Response.headers["Location"]方法的具体用法?Python Response.headers["Location"]怎么用?Python Response.headers["Location"]使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类swift.common.swob.Response
的用法示例。
在下文中一共展示了Response.headers["Location"]方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PUT
# 需要导入模块: from swift.common.swob import Response [as 别名]
# 或者: from swift.common.swob.Response import headers["Location"] [as 别名]
def PUT(self, env, start_response):
"""
Handle PUT Bucket request
"""
# checking params available
AMZ_ACL = set(
[
"HTTP_X_AMZ_GRANT_READ",
"HTTP_X_AMZ_GRANT_WRITE",
"HTTP_X_AMZ_GRANT_READ_ACP",
"HTTP_X_AMZ_GRANT_WRITE_ACP",
"HTTP_X_AMZ_GRANT_FULL_CONTROL",
]
)
qs = env.get("QUERY_STRING", "")
args = urlparse.parse_qs(qs, 1)
if not args:
if not self.validate_bucket_name(self.container_name):
return self.get_err_response("InvalidBucketName")
if not self.is_unique(self.container_name):
return self.get_err_response("BucketAlreadyExists")
# to create a new one
if "HTTP_X_AMZ_ACL" in env:
amz_acl = env["HTTP_X_AMZ_ACL"]
translated_acl = self.swift_acl_translate(canned=amz_acl)
for header, value in translated_acl:
env[header] = value
elif AMZ_ACL & set(env.keys()):
acld = dict()
if "HTTP_X_AMZ_GRANT_READ" in env.keys():
acld["read"] = self.keyvalue2dict(env["HTTP_X_AMZ_GRANT_READ"])
if "HTTP_X_AMZ_GRANT_WRITE" in env.keys():
acld["write"] = self.keyvalue2dict(env["HTTP_X_AMZ_GRANT_WRITE"])
if "HTTP_X_AMZ_GRANT_FULL_CONTROL" in env.keys():
acld["full"] = self.keyvalue2dict(env["HTTP_X_AMZ_GRANT_FULL_CONTROL"])
translated_acl = self.swift_acl_translate(acl=acld)
for header, value in translated_acl:
env[header] = value
# modify env put to swift
body_iter = self._app_call(env)
status = self._get_status_int()
if status != HTTP_CREATED:
if status in (HTTP_UNAUTHORIZED, HTTP_FORBIDDEN):
return self.get_err_response("AccessDenied")
elif status == HTTP_ACCEPTED:
return self.get_err_response("BucketAlreadyExists")
else:
return self.get_err_response("InvalidURI")
resp = Response()
resp.headers["Location"] = self.container_name
resp.status = HTTP_OK
return resp
if len(args) > 1:
return self.get_err_response("InvalidURI")
# now args only 1
action = args.keys().pop()
if action == "acl":
# put acl
acl = env["wsgi.input"].read()
env["REQUEST_METHOD"] = "POST"
env["QUERY_STRING"] = ""
env["HTTP_X_CONTAINER_META_ACL"] = quote(acl)
body_iter = self._app_call(env)
status = self._get_status_int()
if is_success(status):
resp = Response()
resp.status = HTTP_OK
return resp
elif status in (HTTP_UNAUTHORIZED, HTTP_FORBIDDEN):
return self.get_err_response("AccessDenied")
else:
return self.get_err_response("InvalidURI")
elif action == "cors":
# put cors
bodye = self.xmlbody2elem(env["wsgi.input"].read())
env["HTTP_X_CONTAINER_META_ACCESS_CONTROL_ALLOW_ORIGIN"] = ",".join(
[i.text for i in bodye.xpath("/CORSConfiguration/CORSRule/AllowedOrigin")]
)
env["HTTP_X_CONTAINER_META_ACCESS_CONTROL_MAX_AGE"] = ",".join(
[i.text for i in bodye.xpath("/CORSConfiguration/CORSRule/MaxAgeSeconds")]
)
env["HTTP_X_CONTAINER_META_ACCESS_CONTROL_EXPOSE_HEADERS"] = ",".join(
[i.text for i in bodye.xpath("/CORSConfiguration/CORSRule/ExposeHeader")]
)
env["HTTP_X_CONTAINER_META_ACCESS_CONTROL_ALLOW_METHOD"] = ",".join(
i.text for i in bodye.xpath("/CORSConfiguration/CORSRule/AllowedMethod")
)
env["QUERY_STRING"] = ""
env["REQUEST_METHOD"] = "POST"
body_iter = self._app_call(env)
status = self._get_status_int()
#.........这里部分代码省略.........