Setting buckets limits in WHMCS
You can limit operations rate with the ostor-limits service and the following parameters: bucket specifying the bucket name, default=, get=, put=, list=, delete= specifying the limit value.
Similarly, you can limit outgoing bandwidth of a response with the ostor-limits service and the following parameters: bucket specifying the bucket name, out= specifying the limit value. WHMCS configures the bucket limits in S3 cluster when you click the Set button. Create a file S3_setLimitsForBucket.php with the following contents:
<?php
// Load configuration and libraries.
require('../../includes/staas_scripts/S3_getConfig.php');
require('../../includes/staas_scripts/S3_requestCurl.php');
require('../../init.php');
// Set s3 bucket limits.
function S3_setLimitsForBucket($vars) {
// Load configuration.
$s3_config = s3_getConfig();
// Set only if value specified.
if (!empty($vars['ops-value'])) {
// Set s3 bucket limits (ops).
S3_requestCurl(
$s3_config['s3_key'],
$s3_config['s3_secret'],
$s3_config['s3_gateway'],
"/?ostor-limits&bucket=" . $vars['bucket'] .
"&limit-type=ops&limit-resource=" . $vars['ops-name'] .
'&limit-value=' . $vars['ops-value'],
"PUT"
);
}
// Set only if value specified.
if (!empty($vars['bandwidth-value'])) {
// Set s3 bucket limits (bandwidth).
S3_requestCurl(
$s3_config['s3_key'],
$s3_config['s3_secret'],
$s3_config['s3_gateway'],
"/?ostor-limits&bucket=" . $vars['bucket'] .
"&limit-type=bandwidth&limit-resource=" . $vars['bandwidth-name'] .
'&limit-value=' . $vars['bandwidth-value'],
"PUT"
);
}
// Redirect back.
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
// Call function.
S3_setLimitsForBucket($_GET);
?>