MCPcopy
hub / github.com/cubefs/cubefs / getBucketLifecycleConfigurationHandler

Method getBucketLifecycleConfigurationHandler

objectnode/lifecycle.go:41–78  ·  view source on GitHub ↗

API reference: https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

39
40// API reference: https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
41func (o *ObjectNode) getBucketLifecycleConfigurationHandler(w http.ResponseWriter, r *http.Request) {
42 var err error
43 var errorCode *ErrorCode
44
45 defer func() {
46 o.errorResponse(w, r, err, errorCode)
47 }()
48
49 param := ParseRequestParam(r)
50 if param.Bucket() == "" {
51 errorCode = InvalidBucketName
52 return
53 }
54 if _, err = o.vm.Volume(param.Bucket()); err != nil {
55 errorCode = NoSuchBucket
56 return
57 }
58
59 var lcConf *proto.LcConfiguration
60 if lcConf, err = o.mc.AdminAPI().GetBucketLifecycle(param.Bucket()); err != nil {
61 log.LogErrorf("getBucketLifecycle failed: requestID(%v) bucket[%v] err(%v)", GetRequestID(r), param.Bucket(), err)
62 if err.Error() == proto.ErrNoSuchLifecycleConfiguration.Error() {
63 errorCode = NoSuchLifecycleConfiguration
64 }
65 return
66 }
67
68 lifeCycle := NewLifecycleConfiguration()
69 lifeCycle.Rules = lcConf.Rules
70 var data []byte
71 data, err = xml.Marshal(lifeCycle)
72 if err != nil {
73 log.LogErrorf("getBucketLifecycle failed: requestID(%v) bucket[%v] err(%v)", GetRequestID(r), param.Bucket(), err)
74 return
75 }
76
77 writeSuccessResponseXML(w, data)
78}
79
80// API reference: https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
81func (o *ObjectNode) putBucketLifecycleConfigurationHandler(w http.ResponseWriter, r *http.Request) {

Callers

nothing calls this directly

Calls 12

errorResponseMethod · 0.95
LogErrorfFunction · 0.92
ParseRequestParamFunction · 0.85
GetRequestIDFunction · 0.85
writeSuccessResponseXMLFunction · 0.85
AdminAPIMethod · 0.80
ErrorMethod · 0.65
MarshalMethod · 0.65
BucketMethod · 0.45
VolumeMethod · 0.45
GetBucketLifecycleMethod · 0.45

Tested by

no test coverage detected