This topic describes how to query the storage usage of a specific Object Storage Service (OSS) bucket and the number and storage usage of objects of different storage classes in the bucket.
Usage notes
The sample code in this topic uses the China (Hangzhou) region (
cn-hangzhou) as an example. By default, a public endpoint is used. If you want to access OSS from other Alibaba Cloud products in the same region, use an internal endpoint. For more information about the mappings between OSS regions and endpoints, see Regions and endpoints.
Examples
The following sample code provides an example on how to query the storage usage of a bucket:
<?php
require_once __DIR__ . '/../vendor/autoload.php'; // Automaticically load objects and dependency libraries.
use AlibabaCloud\Oss\V2 as Oss;
// Specify command line parameters.
$optsdesc = [
"region" => ['help' => The region in which the bucket is located.', 'required' => True], // (Required) Specify the region in which the bucket is located. Example: oss-cn-hangzhou.
"endpoint" => ['help' => The domain names that other services can use to access OSS.', 'required' => False], // (Optional) Specify the endpoint that can be used by other services to access OSS.
"bucket" => ['help' => The name of the bucket, 'required' => True], // (Required) Specify the name of the bucket.
];
$longopts = \array_map(function ($key) {
return "$key:"; // Add a colon (:) to the end of each parameter to indicate that a value is required.
}, array_keys($optsdesc));
// Parse command line parameters.
$options = getopt("", $longopts);
// Check whether the required parameters are configured.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: the following arguments are required: --$key, $help"; // Specifies that the required parameters are not configured.
exit(1);
}
}
// Obtain the values of the command line parameters.
$region = $options["region"]; // The region in which the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.
// Use environment variables to load the credential information (AccessKey ID and AccessKey secret).
$credentialsProvider=new Oss\Credentials\EnvironmentVariableCredentialsProvider(); // Obtain the credential information from the environment variables.
// Use the default configurations of the SDK.
$cfg=Oss\Config::loadDefault(); // Load the default configurations of the SDK.
$cfg->setCredentialsProvider($credentialsProvider); // Specify the credential provider.
$cfg->setRegion($region); // Specify the region.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Specify the endpoint if an endpoint is provided.
}
// Create an OSSClient instance.
$client = new Oss\Client($cfg); // Create an OSSClient instance.
// Create a request to obtain the statistics of the bucket.
$request=new Oss\Models\GetBucketStatRequest($bucket); // Create a request to obtain the statistics of the bucket.
// Use the getBucketStat method to obtain the statistics of the bucket.
$result = $client->getBucketStat($request); // Use the getBucketStat method to obtain the statistics of the bucket.
// Print the returned result.
printf(
'status code:' . $result-> statusCode. PHP_EOL . // The HTTP response status code.
'request id:' . $result-> requestId. PHP_EOL . // The unique identifier of the request.
'result:' . var_export($result, true) // The returned result, which contains the statistics of the bucket.
);
References
For the complete sample code that is used to query information about a bucket, visit GitHub.
For more information about the API operation that you can call to query information about a bucket, see GetBucketStat.