Bucket Operations
Buckets are containers for your data. This page covers managing bucket lifecycles and configurations.
Listing Buckets
List all buckets accessible with your current credentials. This is not applicable if using a CName endpoint.
$bucketListInfo = $ossClient->listBuckets();
foreach ($bucketListInfo->getBucketList() as $bucket) {
echo $bucket->getName() . " created at " . $bucket->getCreateDate() . PHP_EOL;
}
Bucket Existence & Metadata
$exists = $ossClient->doesBucketExist("my-bucket");
// Get detailed info (Storage Class, Endpoints, Creation Date)
$info = $ossClient->getBucketInfo("my-bucket");
echo $info->getStorageClass(); // e.g., Standard, IA, Archive
ACL (Access Control List)
Buckets support three ACL types:
OssClient::OSS_ACL_TYPE_PRIVATEOssClient::OSS_ACL_TYPE_PUBLIC_READOssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE
$ossClient->putBucketAcl("my-bucket", OssClient::OSS_ACL_TYPE_PUBLIC_READ);
$acl = $ossClient->getBucketAcl("my-bucket");
Lifecycle Rules
Automate object management, such as deleting files after a certain number of days.
use OSS\Model\LifecycleConfig;
use OSS\Model\LifecycleRule;
use OSS\Model\LifecycleAction;
$lifecycleConfig = new LifecycleConfig();
$actions = [new LifecycleAction("Expiration", "Days", 30)];
$rule = new LifecycleRule("delete-logs", "logs/", "Enabled", $actions);
$lifecycleConfig->addRule($rule);
$ossClient->putBucketLifecycle("my-bucket", $lifecycleConfig);
CORS (Cross-Origin Resource Sharing)
use OSS\Model\CorsConfig;
use OSS\Model\CorsRule;
$corsConfig = new CorsConfig();
$rule = new CorsRule();
$rule->addAllowedHeader("*");
$rule->addAllowedOrigin("http://example.com");
$rule->addAllowedMethod("GET");
$corsConfig->addRule($rule);
$ossClient->putBucketCors("my-bucket", $corsConfig);