バケットは、Object Storage Service (OSS) 内のオブジェクトのコンテナです。 オブジェクトをOSSにアップロードする前に、まずオブジェクトを格納するバケットを作成する必要があります。 アクセス制御リスト (ACL) やストレージクラスなど、バケットにさまざまな属性を設定できます。 さまざまなストレージクラスのバケットを作成し、ビジネス要件に基づいてそれらにデータを格納できます。
使用上の注意
OSSは、2024年10月8日の14:00(UTC + 8) から、すべてのAlibaba CloudリージョンでOSSコンソール、API、SDK、ossutil、およびossbrowserを使用して作成されたバケットのブロックパブリックアクセスを徐々に有効にします。 デフォルトでは、2024年10月22日の24:00(UTC + 8) に調整期間が終了した後、API、SDK、ossutil、およびossbrowserを使用してバケットを作成すると、ブロックパブリックアクセスが有効になります。 詳細については、「API操作の呼び出しまたはSDKの使用によって作成されたバケットのパブリックアクセスをデフォルトで有効にするブロック」をご参照ください。
バケットの作成には課金されません。 バケット内のオブジェクトのストレージと、オブジェクトへのアクセス時に生成されたトラフィックに対してのみ課金されます。 詳細については、「課金の概要」をご参照ください。
バケットの容量はスケーラブルです。 バケットを使用する前に容量を購入する必要はありません。
制限事項
Alibaba Cloud アカウントを使用して、同一リージョン内で最大 100 個のバケットを作成することができます。
バケットの作成後、バケットの名前、リージョン、またはストレージクラスを変更することはできません。
単一のバケットには無制限の容量があります。
方法
OSSコンソールの使用
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、バケットの作成 をクリックします。
バケットの作成パネルで、次の表で説明するパラメータを設定します。
パラメーター
説明
バケット名
作成するバケットの名前。 バケットの名前は、次の要件を満たす必要があります。
名前はOSSでグローバルに一意である必要があります。
名前には、小文字、数字、ハイフン (-) のみを使用できます。
名前の先頭と末尾は、小文字または数字である必要があります。
名前の長さは 3 ~ 63 文字である必要があります。
リージョン
バケットが配置されているリージョン。
内部ネットワークを介してElastic Compute Service (ECS) インスタンスからOSSにアクセスするには、ECSインスタンスが配置されているリージョンを選択します。 詳細は、「OSSドメイン名」をご参照ください。
説明中国本土のリージョンにバケットを作成する前に、実名登録ページで実名登録を完了する必要があります。
エンドポイント
バケットが配置されているリージョンのパブリックエンドポイント。
ストレージクラス
バケットのストレージクラス。 有効な値:
スタンダード: 頻繁にアクセスされるデータに対して、信頼性が高く、可用性が高く、高性能なストレージを提供します。 標準は、ソーシャルネットワーキングアプリケーション、画像、音声、およびビデオリソース共有アプリケーション、大規模Webサイト、およびビッグデータ分析など、さまざまなビジネスアプリケーションに適しています。
IA: 標準と比較して低価格で耐久性の高いストレージを提供します。 低頻度アクセス (IA) の最小課金サイズは64 KBで、最小課金保存期間は30日です。 IAオブジェクトにリアルタイムでアクセスできます。 IAオブジェクトにアクセスすると、データ取得料金が発生します。 IAは、月に1回または2回アクセスされるデータなど、アクセス頻度の低いデータに適しています。
アーカイブ: 標準とIAと比較して低価格で耐久性の高いストレージを提供します。 アーカイブの最小課金サイズは64 KB、最小課金ストレージ期間は60日です。 アーカイブオブジェクトが復元された後、またはアーカイブオブジェクトのリアルタイムアクセスが有効になった後、アーカイブオブジェクトにアクセスできます。 アーカイブオブジェクトの復元に必要な時間は約1分です。 アーカイブオブジェクトを復元すると、データ取得料金が発生します。 アーカイブオブジェクトのリアルタイムアクセスを有効にした後にアーカイブオブジェクトにアクセスすると、アクセスしたアーカイブオブジェクトのサイズに基づいてデータ取得料金が発生します。 アーカイブは、アーカイブデータ、医用画像、科学資料、ビデオ映像など、長期間保存する必要のあるデータに適しています。
コールドアーカイブ: アーカイブと比較して低価格で耐久性の高いストレージを提供します。 コールドアーカイブの最小課金サイズは64 KB、最小課金ストレージ期間は180日です。 オブジェクトにアクセスする前に、Cold Archiveオブジェクトを復元する必要があります。 Cold Archiveオブジェクトの復元に必要な時間は、オブジェクトのサイズと復元の優先順位によって異なります。 Cold Archiveオブジェクトを復元すると、データ取得料金とAPI操作呼び出し料金が発生します。 コールドアーカイブは、コンプライアンス要件のために長期間保持する必要があるデータ、ビッグデータおよびAI分野で長期間にわたって蓄積された生データ、映画およびテレビ業界で保持されているメディアリソース、オンライン教育業界からのアーカイブされたビデオなど、長期間にわたるコールドデータの保存に適しています。
ディープコールドアーカイブ: コールドアーカイブと比較して低価格で耐久性の高いストレージを提供します。 Deep Cold Archiveの最小課金サイズは64 KB、最小課金ストレージ期間は180日です。 アクセスする前に、Deep Cold Archiveオブジェクトを復元する必要があります。 Deep Cold Archiveオブジェクトの復元に必要な時間は、オブジェクトのサイズと復元の優先順位によって異なります。 Deep Cold Archiveオブジェクトを復元すると、データ取得料金とAPI操作呼び出し料金が発生します。 Deep Cold Archiveは、ビッグデータやAI分野で長期間蓄積される生データ、長期保存が必要なメディアデータ、規制やポリシーのコンプライアンス要件により長期間保存する必要があるデータなど、非常にコールドなデータを長期間保存するのに適しています。長期保存のためにテープからクラウドに移行する必要があるデータ。
詳細については、「概要」をご参照ください。
冗長性
バケットの冗長タイプ。 有効な値:
LRS
ローカル冗長ストレージ (LRS) を使用すると、同じゾーン内の異なる施設の複数のデバイスにデータの複数のコピーを保存できます。 LRSは、ハードウェア障害が発生してもデータの耐久性と可用性を提供します。
ZRS (推奨)
ZRSは、同じリージョンの複数のゾーンにデータの複数のコピーを保存します。 ゾーンが使用できなくなっても、データにアクセスできます。
重要ZRSはストレージコストを増加させ、有効にした後は無効にできません。 ZRSを選択するときは注意することを推奨します。
詳細については、「ZRSバケットの作成」をご参照ください。
公開アクセス禁止
OSSリソースへのパブリックアクセスをブロックするかどうかを指定します。 ブロックパブリックアクセスを有効にすると、既存のパブリックアクセス権限は無視され、パブリックアクセス権限を設定できません。 これにより、パブリックデータアクセスチャネルが無効になり、データセキュリティが確保されます。 詳細については、「パブリックアクセスのブロック」をご参照ください。
ACL
バケットのACL。 有効な値:
非公開: バケット所有者または許可されたユーザーのみが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 他のユーザーはバケット内のオブジェクトにアクセスできません。
公開読み取り: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者または許可されたユーザーのみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトのみを読み取ることができます。
警告これにより、バケット内のデータへの予期しないアクセスと、予期しない高い料金が発生する可能性があります。 バケットACLを公開読み取りに設定する場合は注意してください。
公開読み書き: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み書き操作を実行できます。
警告これにより、バケット内のデータへの予期しないアクセスと、予期しない高い料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、正当な利益と権利が侵害される可能性があります。 必要な場合を除き、バケットACLを公開読み書きに設定しないことを推奨します。
リソースグループ
バケットが属するリソースグループ。 リソースグループは、使用状況、権限、およびリージョンごとにリソースをグループ化するために使用されます。 リソースグループを使用して、リソースを階層的に整理し、ユーザーとプロジェクトに基づいてリソースをグループ化できます。 詳細については、「リソースグループの概要」をご参照ください。
バージョン管理
バージョン管理を有効にするかどうかを指定します。 有効な値:
有効化: バケットのバージョン管理を有効にすると、バケット内で上書きまたは削除されたオブジェクトは以前のバージョンとして保存されます。 バージョン管理を使用すると、バケット内のオブジェクトを以前のバージョンに復元でき、データが誤って上書きまたは削除されるのを防ぎます。 詳細については、「概要」をご参照ください。
無効化: バケットのバージョン管理を有効にしないと、バケット内で上書きまたは削除されたオブジェクトを復元できません。
暗号化の方法
バケット内のオブジェクトの暗号化に使用される暗号化方法。
なし: サーバー側の暗号化は無効です。
OSS管理: OSSによって管理されるキーは、バケット内のオブジェクトを暗号化するために使用されます。 OSSは、各オブジェクトを異なるキーで暗号化します。 OSSは、定期的にローテーションされたマスターキーも使用して暗号化キーを暗号化します。
KMS: key Management Service (KMS) または特定のCMKに格納されているデフォルトの顧客マスターキー (CMK) を使用して、データの暗号化と復号化が行われます。
KMS管理キーを使用するには、KMSを有効化する必要があります。 詳細については、「専用KMSインスタンスの購入」をご参照ください。
暗号化アルゴリズム: AES-256のみサポートされています。
CMK: 暗号化の方法をKMSに設定すると、このパラメーターを設定できます。 次のCMKタイプのいずれかを選択できます。
alias/acs/oss: KMSに保存されているデフォルトのCMKは、オブジェクトの暗号化とオブジェクトのダウンロード時の復号化に使用されます。
CMK ID: 特定のCMKによって生成されたキーは、さまざまなオブジェクトを暗号化するために使用され、指定されたCMK IDは、暗号化されたオブジェクトのメタデータに記録されます。 オブジェクトは、解読権限を付与されたユーザーによってダウンロードされると解読されます。 CMK IDを指定する前に、KMSコンソールのバケットと同じリージョンに通常キーまたは外部キーを作成する必要があります。 詳細については、「CMKの作成」をご参照ください。
リアルタイムログ照会
バケットのリアルタイムログクエリを有効にするかどうかを指定します。 過去7日間のOSSアクセスログをリアルタイムで無料で照会する場合は、リアルタイムログクエリをオンにします。
詳細については、「リアルタイムログクエリ」をご参照ください。
リアルタイムでログをクエリしたくない場合は、デフォルト設定の [無効] を保持します。
定期バックアップ
バケットのスケジュールバックアップを有効にするかどうかを指定します。 OSSデータを定期的にバックアップする場合は、[スケジュールバックアップ] をオンにします。 この場合、OSSは自動的にバックアップ計画を作成し、Cloud Backupは1日1回データをバックアップし、7日間バックアップを保持します。 詳細については、「スケジュールされたバックアップ」をご参照ください。
OSSデータを定期的にバックアップしたくない場合は、デフォルト設定の [無効] を維持します。
OSS-HDFS
OSS-HDFSを有効にするかどうかを指定します。 JindoSDKを使用してOSSにアクセスし、データレイクを構築する場合は、画面の指示に従ってOSS-HDFSをオンにします。
重要OSS-HDFSを有効にすると無効にすることはできません。 OSS-HDFSを有効にするときは注意してください。
アーカイブまたはコールドアーカイブバケットに対してOSS-HDFSを有効にすることはできません。
詳細については、「OSS-HDFSの有効化」をご参照ください。
階層型名前空間
階層的な名前空間を有効にするかどうかを指定します。 バケット内のディレクトリまたはオブジェクトの名前を変更する場合は、階層名前空間を有効にします。
重要バケットの階層名前空間は、バケットを作成する場合にのみ有効にできます。 階層名前空間は、有効化後は無効にできません。 階層名前空間を有効にする場合は注意してください。
バケットの階層名前空間を有効にすると、OSSの特定の機能がバケットで使用できなくなります。 詳細については、「階層名前空間の使用」をご参照ください。
OKをクリックします。
ossbrowserの使用
ossbrowserを使用して、OSSコンソールで実行できるのと同じバケットレベルの操作を実行できます。 ossbrowserの画面上の指示に従って、バケットを作成できます。 詳細については、「ossbrowserの使用」をご参照ください。
OSS SDKの使用
次のサンプルコードは、一般的なプログラミング言語でOSS SDKを使用してバケットを作成する方法の例を示しています。 他のプログラミング言語のOSS SDKを使用してバケットを作成する方法の詳細については、「概要」をご参照ください。
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
public class Demo {
public static void main(String[] args) throws Exception {
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
String endpoint = "yourEndpoint";
// 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.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Specify the name of the bucket.
String bucketName = "examplebucket";
// Specify the ID of the resource group. If you do not specify a resource group ID, the bucket belongs to the default resource group.
//String rsId = "rg-aek27tc****";
// Create an OSSClient instance.
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
// Create a bucket and enable the hierarchical namespace feature for the bucket.
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
// The following code provides an example on how to specify the storage class, access control list (ACL), and redundancy type when you create the bucket.
// In this example, the storage class of the bucket is Standard.
createBucketRequest.setStorageClass(StorageClass.Standard);
// The default redundancy type of the bucket is DataRedundancyType.LRS.
createBucketRequest.setDataRedundancyType(DataRedundancyType.LRS);
// Set the ACL of the bucket to public-read. The default ACL is private.
createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
// When you create a bucket in a region that supports resource groups, you can configure a resource group for the bucket.
//createBucketRequest.setResourceGroupId(rsId);
ossClient.createBucket(createBucketRequest);
// Create a bucket.
ossClient.createBucket(createBucketRequest);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
<?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 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 the endpoint based on your business requirements.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket. Example: examplebucket.
$bucket= "examplebucket";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
);
$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");
const OSS = require('ali-oss');
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET
});
// Create the bucket.
async function putBucket() {
try {
const options = {
storageClass: 'Standard', // By default, the storage class of a bucket is Standard. To set the storage class of the bucket to Archive, set storageClass to Archive.
acl: 'private', // By default, the access control list (ACL) of a bucket is private. To set the ACL of the bucket to public read, set acl to public-read.
dataRedundancyType: 'LRS' // By default, the redundancy type of a bucket is locally redundant storage (LRS). To set the redundancy type of the bucket to zone-redundant storage (ZRS), set dataRedundancyType to ZRS.
}
// Specify the name of the bucket.
const result = await client.putBucket('examplebucket', options);
console.log(result);
} catch (err) {
console.log(err);
}
}
putBucket();
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from the environment variables. Before you run this sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
# Specify the name of the bucket. Example: examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# Create the bucket.
# The following sample code provides an example on how to specify the storage class, access control list (ACL), and redundancy type when you create the bucket.
# In this example, the storage class is Standard, the ACL is private, and the redundancy type is zone-redundant storage (ZRS).
# bucketConfig = oss2.models.BucketCreateConfig(oss2.BUCKET_STORAGE_CLASS_STANDARD, oss2.BUCKET_DATA_REDUNDANCY_TYPE_ZRS)
# bucket.create_bucket(oss2.BUCKET_ACL_PRIVATE, bucketConfig)
bucket.create_bucket()
using Aliyun.OSS;
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// 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.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Specify the name of the bucket.
var bucketName = "examplebucket";
// Initialize an OssClient instance.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
// Create a bucket.
try
{
var request = new CreateBucketRequest(bucketName);
// Set the access control list (ACL) of the bucket to PublicRead. The default value is private.
request.ACL = CannedAccessControlList.PublicRead;
// Set the redundancy type of the bucket to zone-redundant storage (ZRS).
request.DataRedundancyType = DataRedundancyType.ZRS;
client.CreateBucket(request);
Console.WriteLine("Create bucket succeeded");
}
catch (Exception ex)
{
Console.WriteLine("Create bucket failed. {0}", ex.Message);
}
// Construct a request to create a bucket.
// Specify the name of the bucket.
CreateBucketRequest createBucketRequest=new CreateBucketRequest("examplebucket");.
// Specify the access control list (ACL) of the bucket.
// createBucketRequest.setBucketACL(CannedAccessControlList.Private);
// Specify the storage class of the bucket.
// createBucketRequest.setBucketStorageClass(StorageClass.Standard);
// Create the bucket asynchronously.
OSSAsyncTask createTask = oss.asyncCreateBucket(createBucketRequest, new OSSCompletedCallback<CreateBucketRequest, CreateBucketResult>() {
@Override
public void onSuccess(CreateBucketRequest request, CreateBucketResult result) {
Log.d("asyncCreateBucket", "Success");
}
@Override
public void onFailure(CreateBucketRequest request, ClientException clientException, ServiceException serviceException) {
// Handle request exceptions.
if (clientException != null) {
// Handle client exceptions, such as network exceptions.
clientException.printStackTrace();
}
if (serviceException != null) {
// Handle service exceptions.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
/// 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, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint.
client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create a bucket named examplebucket. Set the storage class to IA (oss.StorageIA), the ACL to public-read (oss.ACLPublicRead), and the redundancy type to ZRS (oss.RedundancyZRS).
err = client.CreateBucket("examplebucket", oss.StorageClass(oss.StorageIA), oss.ACL(oss.ACLPublicRead), oss.RedundancyType(oss.RedundancyZRS))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}
// Construct a request to create a bucket.
OSSCreateBucketRequest * create = [OSSCreateBucketRequest new];
// Set the bucket name to examplebucket.
create.bucketName = @"examplebucket";
// Set the access control list (ACL) of the bucket to private.
create.xOssACL = @"private";
// Set the storage class of the bucket to Infrequent Access (IA).
create.storageClass = OSSBucketStorageClassIA;
OSSTask * createTask = [client createBucket:create];
[createTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"create bucket success!");
} else {
NSLog(@"create bucket failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [createTask waitUntilFinished];
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Initialize information about the account that is used to access OSS. */
/* Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Specify the name of the bucket. Example: examplebucket. */
std::string BucketName = "examplebucket";
/* Initialize resources, such as network resources. */
InitializeSdk();
ClientConfiguration conf;
/* 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. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
/* Specify the name, storage class, and access control list (ACL) of the bucket. */
CreateBucketRequest request(BucketName, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
/* Set the redundancy type of the bucket to zone-redundant storage (ZRS). */
//request.setDataRedundancyType(DataRedundancyType::ZRS);
/* Create the bucket. */
auto outcome = client.CreateBucket(request);
if (!outcome.isSuccess()) {
/* Handle exceptions. */
std::cout << "CreateBucket fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Release resources, such as network resources. */
ShutdownSdk();
return 0;
}
#include "oss_api.h"
#include "aos_http_io.h"
/* Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "yourEndpoint";
/* Specify the name of the bucket. Example: examplebucket. */
const char *bucket_name = "examplebucket";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* Use a char* string to initialize data of the aos_string_t type. */
aos_str_set(&options->config->endpoint, endpoint);
/* 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. */
aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
/* Specify whether to use CNAME to access OSS. The value of 0 indicates that CNAME is not used. */
options->config->is_cname = 0;
/* Configure network parameters, such as the timeout period. */
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
/* Call the aos_http_io_initialize method in main() to initialize global resources, such as network resources and memory resources. */
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
exit(1);
}
/* Create a memory pool to manage memory. aos_pool_t is equivalent to apr_pool_t. The code used to create a memory pool is included in the APR library. */
aos_pool_t *pool;
/* Create a memory pool. The value of the second parameter is NULL. This value specifies that the pool does not inherit other memory pools. */
aos_pool_create(&pool, NULL);
/* Create and initialize options. This parameter includes global configuration information, such as endpoint, access_key_id, access_key_secret, is_cname, and curl. */
oss_request_options_t *oss_client_options;
/* Allocate the memory resources in the memory pool to the options. */
oss_client_options = oss_request_options_create(pool);
/* Initialize oss_client_options. */
init_options(oss_client_options);
/* Initialize the parameters. */
aos_string_t bucket;
oss_acl_e oss_acl = OSS_ACL_PRIVATE;
aos_table_t *resp_headers = NULL;
aos_status_t *resp_status = NULL;
/* Assign char* data to a bucket of the aos_string_t type. */
aos_str_set(&bucket, bucket_name);
/* Create the bucket. */
resp_status = oss_create_bucket(oss_client_options, &bucket, oss_acl, &resp_headers);
/* Determine whether the bucket is created. */
if (aos_status_is_ok(resp_status)) {
printf("create bucket succeeded\n");
} else {
printf("create bucket failed\n");
}
/* Release the memory pool. This operation releases the memory resources allocated for the request. */
aos_pool_destroy(pool);
/* Release the allocated global resources. */
aos_http_io_deinitialize();
return 0;
}
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 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.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the name of the bucket. Example: examplebucket.
client.create_bucket('examplebucket')
ossutilの使用
ossutilを使用してバケットを作成できます。 詳細は、「mb」をご参照ください。
OSS APIの使用
ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「PutBucket」をご参照ください。
次のステップ
オブジェクト管理
オブジェクトのアップロード
バケットを作成したら、オブジェクトをバケットにアップロードできます。 オブジェクトのアップロード方法の詳細については、「簡易アップロード」をご参照ください。
オブジェクトのダウンロード
オブジェクトをバケットにアップロードした後、ブラウザのデフォルトのダウンロードパスまたはカスタムローカルパスにオブジェクトをダウンロードできます。 オブジェクトのダウンロード方法の詳細については、「簡易ダウンロード」をご参照ください。
オブジェクトの共有
ダウンロードまたはプレビューにオブジェクトURLを使用して、他のユーザーとオブジェクトを共有できます。 詳細については、「オブジェクトの共有」をご参照ください。
アクセス制御
セキュリティ上の理由から、OSSリソースのデフォルトACLはプライベートです。 ACLが非公開のリソースにアクセスできるのは、所有者と許可されたユーザーのみです。 OSSでは、さまざまなポリシーを設定して、OSSリソースにアクセスまたは使用するための特定の権限をユーザーに付与できます。 詳細については、「概要」をご参照ください。