バケットは、Object Storage Service (OSS) にオブジェクトを格納するために使用されるコンテナーです。 OSS のすべてのオブジェクトはバケットに格納されます。 このトピックでは、バケットを作成する方法について説明します。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用しています。 OSS と同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。 OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。 カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「OSSClient インスタンスを作成する」をご参照ください。
2025 年 10 月 13 日 10:00 (UTC + 08:00) から、OSS は全リージョンで段階的な調整を実施し、API、OSS SDK、または ossutil を使用して作成された新しいバケットに対して、デフォルトで パブリックアクセスをブロック を有効にします。 各リージョンで調整が有効になる正確な時間については、[公式発表] 新しく作成されたバケットのパブリックアクセスブロック設定の調整 をご覧ください。 パブリックアクセスブロックが有効になっている場合、パブリック ACL(公開読み取りおよび公開読み取り/書き込み)やパブリックアクセスを許可するバケットポリシーなど、パブリックアクセス権限を設定することはできません。 ビジネスでパブリックアクセスが必要な場合は、バケットの作成後にこの機能を無効にすることができます。
権限
デフォルトでは、Alibaba Cloud アカウントは、アカウント内のリソースに対するフル権限を持っています。 一方、RAM ユーザーと Alibaba Cloud アカウントに関連付けられた RAM ロールは、最初は権限を持っていません。 RAM ユーザーまたはロールを使用してリソースを管理するには、RAM ポリシーまたは バケットポリシーを使用して必要な権限を付与する必要があります。
API | アクション | 説明 |
PutBucket |
| バケットを作成します。 |
| バケットの作成後に、バケットのアクセス制御リスト (ACL) を変更します。 |
例
次のサンプルコードは、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;
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// この例では、中国 (杭州) リージョンのエンドポイントを使用しています。実際のエンドポイントを指定してください。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// バケットのストレージタイプを低頻度アクセス (IA) に設定します。デフォルトのストレージタイプは標準です。
$options = array(
OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA
);
// バケットの ACL を公開読み取りに設定します。デフォルトのバケット ACL は非公開です。
$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");