Um bucket é um contêiner para armazenamento de objetos. Todos os objetos devem ser armazenados em um bucket. Este tópico descreve como criar um bucket.
Observações de uso
Neste tópico, usamos o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para mais detalhes sobre as regiões e os endpoints compatíveis, consulte Regions and endpoints.
Este tópico demonstra como criar uma instância OSSClient com um endpoint do OSS. Para outras configurações, como usar um domínio personalizado ou se autenticar com credenciais do Security Token Service (STS), consulte Create an OssClient.
A partir das 10:00:00 (UTC+8) de 13 de outubro de 2025, o OSS ativará gradualmente o Block public access por padrão para buckets criados por chamadas de API, OSS SDKs ou ossutil em todas as regiões. Para saber quando a mudança entrará em vigor em cada região, consulte Announcement. Após a ativação desse recurso, não é possível conceder permissões de acesso público. Isso inclui as ACLs de leitura pública ou leitura e gravação pública, bem como políticas de bucket que permitam esse acesso. Se o seu negócio exigir acesso público, desative o bloqueio de acesso público após criar o bucket.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.
|
API |
Ação |
Descrição |
|
PutBucket |
|
Cria um bucket. |
|
|
Permissão necessária para modificar a ACL do bucket após a criação. |
Exemplos
O código a seguir mostra como criar um bucket chamado examplebucket.
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
$provider = new EnvironmentVariableCredentialsProvider();
// In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket. Example: examplebucket.
$bucket= "examplebucket";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Set the storage class of the bucket to Infrequent Access (IA). The default storage class is Standard.
$options = array(
OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA
);
// Set the ACL of the bucket to public-read. The default bucket ACL is private.
$ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
Referências
Para acessar o código de exemplo completo para criar um bucket, consulte o exemplo no GitHub.
Para mais detalhes sobre a operação de API para criar um bucket, consulte PutBucket.