OPTION(rgw_objexp_hints_num_shards, OPT_U32, 127) // maximum number of parts in which the hint index is stored in
OPTION(rgw_objexp_chunk_size, OPT_U32, 100) // maximum number of entries in a single operation when processing objexp data
+OPTION(rgw_enable_static_website, OPT_BOOL, false) // enable static website feature
+
OPTION(mutex_perf_counter, OPT_BOOL, false) // enable/disable mutex perf counter
OPTION(throttler_perf_counter, OPT_BOOL, true) // enable/disable throttler perf counter
if (s->info.args.sub_resource_exists("versioning"))
return new RGWGetBucketVersioning_ObjStore_S3;
- if (s->info.args.sub_resource_exists("website"))
+ if (s->info.args.sub_resource_exists("website")) {
+ if (!s->cct->_conf->rgw_enable_static_website) {
+ return NULL;
+ }
return new RGWGetBucketWebsite_ObjStore_S3;
+ }
if (is_acl_op()) {
return new RGWGetACLs_ObjStore_S3;
return NULL;
if (s->info.args.sub_resource_exists("versioning"))
return new RGWSetBucketVersioning_ObjStore_S3;
- if (s->info.args.sub_resource_exists("website"))
+ if (s->info.args.sub_resource_exists("website")) {
+ if (!s->cct->_conf->rgw_enable_static_website) {
+ return NULL;
+ }
return new RGWSetBucketWebsite_ObjStore_S3;
+ }
if (is_acl_op()) {
return new RGWPutACLs_ObjStore_S3;
} else if (is_cors_op()) {
return new RGWDeleteCORS_ObjStore_S3;
}
- if (s->info.args.sub_resource_exists("website"))
+ if (s->info.args.sub_resource_exists("website")) {
+ if (!s->cct->_conf->rgw_enable_static_website) {
+ return NULL;
+ }
return new RGWDeleteBucketWebsite_ObjStore_S3;
+ }
return new RGWDeleteBucket_ObjStore_S3;
}