Un bucket est un conteneur permettant de stocker des objets. Vous pouvez utiliser le SDK Object Storage Service (OSS) pour PHP afin de créer des buckets.
Notes
L'exemple de code utilise par défaut l'ID de région
cn-hangzhoude la région Chine (Hangzhou) ainsi que l'endpoint public. Pour accéder aux ressources d'un bucket depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et endpoints pris en charge, consultez la rubrique Régions et endpoints OSS.La permission
oss:PutBucketest requise pour créer des buckets. Pour plus de détails, consultez la section Accorder une politique personnalisée.À partir du 13 octobre 2025 à 10 h 00 (UTC+8), OSS active progressivement par défaut la fonctionnalité Block public access pour les buckets créés via des appels d'API, à l'aide des SDK OSS ou d'ossutil, dans toutes les régions. Pour connaître la date d'entrée en vigueur de cette modification dans chaque région, consultez l'annonce. Une fois cette fonctionnalité activée, vous ne pouvez pas accorder d'autorisations d'accès public, y compris les listes de contrôle d'accès (ACL) public-read ou public-read-write, ni les politiques de bucket autorisant l'accès public. Si votre activité nécessite un accès public, vous pouvez désactiver le blocage de l'accès public après la création du bucket.
Exemple de code
L'exemple de code suivant montre comment créer un bucket.
<?php
// Automaticically load objects and dependency libraries.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Specify command line parameters.
$optsdesc = [
"region" => ['help' => 'The region in which the bucket is located.', 'required' => True], // The region parameter is required. Example: oss-cn-hangzhou.
"endpoint" => ['help' => 'The domain names that other services can use to access OSS.', 'required' => False], // The endpoint parameter is optional.
"bucket" => ['help' => 'The name of the bucket', 'required' => True], // The name of the bucket is required.
];
// Generate a list of long options for parsing command line parameters.
$longopts = \array_map(function ($key) {
return "$key:"; // The colon (:) following each parameter indicates that the parameter is required.
}, array_keys($optsdesc));
// Parse command line parameters.
$options = getopt("", $longopts);
// Check whether the required parameters have been 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);
}
}
// Retrieve the values of the command line parameters.
$region = $options["region"]; // Region in which the bucket is located.
$bucket = $options["bucket"]; // Name of the bucket.
// Load the credential information (AccessKeyId and AccessKeySecret) from environment variables.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Use the default configuration of the SDK.
$cfg = Oss\Config::loadDefault();
$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 one is provided.
}
// Create an OSSClient instance.
$client = new Oss\Client($cfg);
// Create a request to initiate bucket creation.
$request = new Oss\Models\PutBucketRequest($bucket);
// Call the putBucket method.
$result = $client->putBucket($request);
// Output the result.
printf(
'status code:' . $result->statusCode . PHP_EOL . // HTTP status code.
'request id:' . $result->requestId // Unique ID of the request.
);
Références
Pour obtenir l'exemple de code complet, consultez l'exemple GitHub.
Pour l'opération API utilisée pour créer des buckets, consultez la rubrique PutBucket.