Bucket adalah wadah dasar untuk objek di Object Storage Service (OSS) yang menyediakan penyimpanan tak terbatas dan berskala secara elastis.
Konfigurasi dasar
Berikut adalah pengaturan inti bucket yang tidak dapat diubah setelah dibuat.
-
Bucket Name: Harus unik secara global. Disarankan menggunakan identifikasi departemen atau bisnis dalam penamaan bucket untuk mempermudah identifikasi dan manajemen, misalnya:
hr-documents. -
Region: Menentukan lokasi fisik penyimpanan data Anda. Pilih wilayah berdasarkan prioritas berikut:
-
Kepatuhan: Pilih wilayah yang memenuhi persyaratan regulasi Anda.
-
Kinerja: Untuk mengurangi latensi jaringan, pilih wilayah yang paling dekat dengan pengguna target Anda. Jika Anda mengakses data dari produk Alibaba Cloud lainnya seperti ECS, pilih wilayah yang sama agar dapat memanfaatkan lalu lintas jaringan internal gratis dan meminimalkan latensi.
-
Ketersediaan fitur: Lihat Catatan Rilis untuk memastikan wilayah tersebut mendukung fitur yang Anda butuhkan.
-
Optimalisasi biaya: Setelah memenuhi persyaratan lainnya, pilih wilayah dengan harga yang lebih menguntungkan.
CatatanAnda tidak dapat lagi membuat bucket di wilayah China (Zhangjiakou). Namun, bucket yang sudah ada di wilayah ini tidak terpengaruh. Jika Anda memiliki paket sumber daya untuk wilayah ini, Anda tetap dapat menggunakannya untuk mengimbangi biaya bucket tersebut.
-
Jika hanya menentukan nama bucket dan wilayah saat pembuatan, bucket akan menggunakan pengaturan default berikut: penyimpanan standar, Zone-Redundant Storage (ZRS), private, dan Block Public Access diaktifkan.
Konsol
-
Di Konsol OSS, buka halaman Buckets dan klik Create Bucket.
-
Di panel Create Bucket, atur Bucket Name dan Region, lalu klik Create.
Ossutil
Gunakan alat baris perintah ossutil untuk membuat bucket. Untuk petunjuk instalasi, lihat Instal ossutil.
-
Konfigurasikan wilayah bucket yang diperlukan.
ossutil config -
Tekan Enter untuk melewati prompt awal hingga muncul prompt wilayah:
Please enter Region [cn-hangzhou]:Masukkan ID wilayah target, misalnya
cn-beijing, lalu tekan Enter, atau tekan Enter untuk menerima wilayah defaultcn-hangzhou. Daftar ID wilayah tersedia di topik Wilayah dan Titik Akhir OSS. -
Buat bucket bernama examplebucket.
ossutil mb oss://examplebucket -
Verifikasi bahwa bucket berhasil dibuat.
ossutil ls
Untuk informasi lebih lanjut tentang perintah ini, lihat mb (buat bucket).
SDK
Contoh berikut menunjukkan cara membuat bucket dengan SDK umum. Untuk contoh kode SDK lainnya, lihat Pengenalan SDK Alibaba Cloud.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;
public class Demo {
public static void main(String[] args) throws Exception {
// Endpoint untuk wilayah China (Hangzhou).
// Ganti dengan endpoint untuk wilayah bucket Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Muat kredensial dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
EnvironmentVariableCredentialsProvider credentialsProvider =
CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String bucketName = "examplebucket";
// Ganti dengan ID wilayah yang sesuai dengan endpoint Anda.
String region = "cn-hangzhou";
// Bangun OSSClient dengan Signature V4.
// Panggil ossClient.shutdown() setelah selesai untuk melepaskan resource.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Buat bucket dengan pengaturan default.
ossClient.createBucket(new CreateBucketRequest(bucketName));
System.out.println("Bucket created: " + bucketName);
} catch (OSSException oe) {
// OSS menolak permintaan. Periksa kode kesalahan dan ID permintaan untuk detailnya.
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) {
// Klien tidak dapat mencapai OSS (misalnya, error jaringan).
System.out.println("Error message: " + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}import argparse
import alibabacloud_oss_v2 as oss
# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="put bucket sample")
# Tentukan parameter baris perintah wajib --region, yang menentukan wilayah tempat bucket berada.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# Tentukan parameter baris perintah wajib --bucket, yang menentukan nama bucket.
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# Tentukan parameter baris perintah opsional --endpoint, yang menentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
def main():
args = parser.parse_args() # Parsing parameter baris perintah.
# Muat kredensial akses dari variabel lingkungan untuk otentikasi.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default SDK dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan wilayah tempat bucket berada.
cfg.region = args.region
# Jika parameter endpoint disediakan, tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi untuk membuat instans OSSClient.
client = oss.Client(cfg)
# Jalankan permintaan untuk membuat bucket dan atur kelas penyimpanannya ke Standard.
result = client.put_bucket(oss.PutBucketRequest(
bucket=args.bucket,
create_bucket_configuration=oss.CreateBucketConfiguration(
storage_class='Standard'
)
))
# Tampilkan kode status HTTP dalam respons dan ID permintaan yang digunakan untuk memeriksa apakah permintaan berhasil.
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
)
if __name__ == "__main__":
main() # Titik masuk skrip. Fungsi main dipanggil saat file dijalankan langsung.package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Muat konfigurasi default. Kredensial dibaca dari variabel lingkungan.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
request := &oss.PutBucketRequest{
Bucket: oss.Ptr(bucketName),
}
// Buat bucket.
result, err := client.PutBucket(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put bucket %v", err)
}
log.Printf("put bucket result:%#v\n", result)
}<?php
// Muat otomatis objek dan library dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan parameter baris perintah.
$optsdesc = [
"region" => ['help' => 'The region in which the bucket is located.', 'required' => True], // Parameter wilayah wajib. Contoh: oss-cn-hangzhou.
"endpoint" => ['help' => 'The domain names that other services can use to access OSS.', 'required' => False], // Parameter endpoint opsional.
"bucket" => ['help' => 'The name of the bucket', 'required' => True], // Nama bucket wajib.
];
// Hasilkan daftar opsi panjang untuk parsing parameter baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut wajib.
}, array_keys($optsdesc));
// Parsing parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter wajib telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: the following arguments are required: --$key, $help"; // Menentukan bahwa parameter wajib belum dikonfigurasi.
exit(1);
}
}
// Ambil nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat informasi kredensial (AccessKeyId dan AccessKeySecret) dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Tentukan endpoint jika disediakan.
}
// Buat instans OSSClient.
$client = new Oss\Client($cfg);
// Buat permintaan untuk memulai pembuatan bucket.
$request = new Oss\Models\PutBucketRequest($bucket);
// Panggil metode putBucket.
$result = $client->putBucket($request);
// Tampilkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId // ID unik permintaan.
);
const OSS = require('ali-oss');
const client = new OSS({
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
region: 'yourregion',
// Muat kredensial dari variabel lingkungan.
// Atur OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET sebelum menjalankan kode ini.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'yourBucketName',
});
async function putBucket() {
try {
const options = {
// Kelas penyimpanan: Standard (default), Archive
storageClass: 'Standard',
// ACL: private (default), public-read, public-read-write
acl: 'private',
// Jenis redundansi data: LRS (locally redundant storage, default), ZRS (zone-redundant storage)
dataRedundancyType: 'LRS',
};
const result = await client.putBucket('examplebucket', options);
console.log(result);
} catch (err) {
console.log(err);
}
}
putBucket();// Buat permintaan untuk membuat bucket.
// Tentukan nama bucket.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("examplebucket");
// Tentukan daftar kontrol akses (ACL) bucket.
// createBucketRequest.setBucketACL(CannedAccessControlList.Private);
// Tentukan kelas penyimpanan bucket.
// createBucketRequest.setBucketStorageClass(StorageClass.Standard);
// Buat bucket secara asinkron.
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) {
// Exception permintaan.
if (clientException != null) {
// Exception sisi klien, seperti error jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Exception sisi server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun OSS. */
/* Atur yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Atur yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke cn-hangzhou. */
std::string Region = "yourRegion";
/* Tentukan nama bucket, misalnya examplebucket. */
std::string BucketName = "examplebucket";
/* Inisialisasi resource jaringan. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
/* Tentukan nama, kelas penyimpanan, dan ACL untuk bucket baru. */
CreateBucketRequest request(BucketName, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
/* Atur jenis redundansi data ke zone-redundant storage. */
request.setDataRedundancyType(DataRedundancyType::ZRS);
/* Buat bucket. */
auto outcome = client.CreateBucket(request);
if (!outcome.isSuccess()) {
/* Tangani exception. */
std::cout << "CreateBucket fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan resource jaringan. */
ShutdownSdk();
return 0;
}// Buat permintaan untuk membuat bucket.
OSSCreateBucketRequest * create = [OSSCreateBucketRequest new];
// Atur nama bucket ke examplebucket.
create.bucketName = @"examplebucket";
// Atur daftar kontrol akses (ACL) bucket ke private.
create.xOssACL = @"private";
// Atur kelas penyimpanan bucket ke 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;
}];
// Blokir thread saat ini untuk menunggu tugas selesai.
// [createTask waitUntilFinished]; API
Untuk membuat bucket dengan API PutBucket, tentukan nama bucket dan wilayah dalam header permintaan Host.
Kelas penyimpanan
OSS menyediakan lima kelas penyimpanan: Standard, Infrequent Access (IA), Archive, Cold Archive, dan Deep Cold Archive. Kelas penyimpanan default adalah Standard. Kelas-kelas ini menawarkan biaya penyimpanan yang semakin rendah dengan imbalan pembatasan akses yang lebih ketat, sehingga cocok untuk data dengan frekuensi akses berbeda.
Objek secara default mewarisi kelas penyimpanan bucket. Meskipun Anda tidak dapat mengubah kelas penyimpanan bucket setelah dibuat, Anda dapat menggunakan aturan siklus hidup untuk secara otomatis memindahkan objek ke kelas penyimpanan berbeda guna mengoptimalkan biaya.
-
Standard
Cocok untuk data aktif yang satu file-nya diakses lebih dari sekali per bulan. Mendukung akses real-time. Gunakan Standard jika Anda tidak yakin tentang frekuensi akses data. Anda nanti dapat menggunakan aturan siklus hidup untuk secara otomatis memindahkan objek ke kelas penyimpanan berbiaya lebih rendah.
-
Infrequent Access (IA)
Cocok untuk data hangat yang satu file-nya diakses sekali per bulan atau kurang, seperti file backup dan log operasi. Mendukung akses real-time tetapi memiliki durasi penyimpanan minimum 30 hari. Jika Anda menghapus objek sebelum 30 hari berlalu, Anda tetap dikenai biaya penyimpanan selama 30 hari. Kelas penyimpanan ini tidak cocok untuk data sementara atau uji coba.
-
Archive
Cocok untuk data dingin yang satu file-nya diakses kurang dari sekali setiap 90 hari. Mendukung akses real-time melalui Archive Direct Read. Atau, Anda dapat memulihkan objek sebelum membacanya. Pemulihan membutuhkan waktu sekitar 1 menit. Kelas penyimpanan ini memiliki durasi penyimpanan minimum 60 hari.
Restore: Proses membuat objek dalam kelas penyimpanan arsip tersedia sementara untuk dibaca.
-
Cold Archive
Cocok untuk data yang satu file-nya diakses kurang dari sekali per tahun. Anda harus memulihkan data sebelum dapat membacanya. Pemulihan membutuhkan waktu 1 hingga 12 jam. Kelas ini memiliki biaya lebih rendah dan durasi penyimpanan minimum 180 hari.
-
Deep Cold Archive
Sebagai opsi berbiaya paling rendah, cocok untuk data yang satu file-nya diakses kurang dari sekali per tahun. Pemulihan membutuhkan waktu 12 atau 48 jam. Memiliki durasi penyimpanan minimum 180 hari. Membuat bucket dengan kelas penyimpanan ini tidak disarankan. Kami menyarankan Anda menggunakan aturan siklus hidup untuk secara otomatis memindahkan data ke kelas ini.
Konsol
Saat membuat bucket, konfigurasikan kelas penyimpanan sesuai kebutuhan Anda.
ossutil
Perintah berikut membuat bucket bernama examplebucket dengan kelas penyimpanan Infrequent Access (IA).
ossutil mb oss://examplebucket --storage-class IA
Untuk informasi lebih lanjut tentang perintah ini, lihat mb (buat bucket).
SDK OSS
Contoh kode berikut menunjukkan cara membuat bucket menggunakan SDK umum. Untuk contoh kode SDK lainnya, lihat Pengenalan SDK.
Java
Untuk mengatur kelas penyimpanan, konfigurasikan objek CreateBucketRequest.
// Buat permintaan dan tentukan kelas penyimpanan.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("your-bucket-name");
createBucketRequest.setStorageClass(StorageClass.IA); // Tentukan kelas penyimpanan di sini.
// Opsi yang tersedia: StorageClass.Standard, StorageClass.IA, StorageClass.Archive, dll.
Untuk contoh lengkap, lihat Buat bucket (Java SDK V1).
Python
Saat memanggil metode client.put_bucket, tentukan kelas penyimpanan menggunakan parameter create_bucket_configuration.
// Buat permintaan dan tentukan kelas penyimpanan.
req = oss.PutBucketRequest(
bucket="your-bucket-name",
create_bucket_configuration=oss.CreateBucketConfiguration(
storage_class='IA' // Tentukan kelas penyimpanan di sini.
)
)
# Opsi yang tersedia: 'Standard', 'IA', 'Archive', 'ColdArchive', 'DeepColdArchive'
Untuk contoh lengkap, lihat Buat bucket (Python SDK V2).
Go
Untuk mengatur kelas penyimpanan, konfigurasikan field CreateBucketConfiguration saat membuat objek PutBucketRequest.
request := &oss.PutBucketRequest{
Bucket: oss.Ptr("your-bucket-name"),
CreateBucketConfiguration: &oss.CreateBucketConfiguration{
StorageClass: oss.StorageClassIA, // Tentukan kelas penyimpanan di sini.
},
}
// Opsi yang tersedia: oss.StorageClassStandard, oss.StorageClassIA, oss.StorageClassArchive, dll.
Untuk contoh lengkap, lihat Buat bucket (Go SDK V2).
PHP
Untuk mengatur kelas penyimpanan, berikan objek CreateBucketConfiguration ke konstruktor saat membuat objek PutBucketRequest.
// Buat permintaan dan tentukan kelas penyimpanan.
$request = new Oss\Models\PutBucketRequest(
"your-bucket-name",
null, // acl
null, // resourceGroupId
new Oss\Models\CreateBucketConfiguration(
'IA', // Tentukan kelas penyimpanan di sini.
)
);
/*
* Kelas penyimpanan yang tersedia: 'Standard', 'IA', 'Archive', 'ColdArchive', 'DeepColdArchive'
*/
Untuk contoh lengkap, lihat Buat bucket (PHP SDK V2).
C#
Untuk mengatur kelas penyimpanan, buat objek CreateBucketRequest dan konfigurasikan propertinya.
// Buat permintaan dan tentukan kelas penyimpanan.
var request = new CreateBucketRequest("your-bucket-name");
request.StorageClass = StorageClass.IA; // Tentukan kelas penyimpanan di sini.
// Kelas penyimpanan yang tersedia: StorageClass.Standard, StorageClass.IA, StorageClass.Archive, dll.
Untuk contoh lengkap, lihat Buat bucket (C# SDK V1).
Node.js
Untuk mengatur kelas penyimpanan, buat objek options dan berikan ke metode putBucket.
// Buat objek options dan tentukan kelas penyimpanan.
const options = {
storageClass: 'IA', // Tentukan kelas penyimpanan di sini.
};
// Kelas penyimpanan yang tersedia: 'Standard', 'IA', 'Archive', 'ColdArchive', 'DeepColdArchive'
Untuk contoh lengkap, lihat Buat bucket (Node.js SDK).
Android
Untuk mengatur kelas penyimpanan atau izin akses, buat dan konfigurasikan objek CreateBucketRequest.
// Buat permintaan dan tentukan kelas penyimpanan.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("your-bucket-name");
createBucketRequest.setBucketStorageClass(StorageClass.IA); // Tentukan kelas penyimpanan di sini.
// Kelas penyimpanan yang tersedia: StorageClass.Standard, StorageClass.IA, StorageClass.Archive, dll.
Untuk contoh lengkap, lihat Buat bucket (Android SDK).
iOS
Untuk mengatur kelas penyimpanan, buat objek OSSCreateBucketRequest dan konfigurasikan propertinya.
// Buat permintaan dan tentukan kelas penyimpanan.
OSSCreateBucketRequest *create = [OSSCreateBucketRequest new];
create.bucketName = @"your-bucket-name";
create.storageClass = OSSBucketStorageClassIA; // Tentukan kelas penyimpanan di sini.
// Kelas penyimpanan yang tersedia: OSSBucketStorageClassStandard, OSSBucketStorageClassIA, dll.
Untuk contoh lengkap, lihat Buat bucket (iOS SDK).
API
Saat memanggil PutBucket, tentukan kelas penyimpanan bucket dalam elemen permintaan StorageClass.
Jenis redundansi penyimpanan
Jenis redundansi penyimpanan menentukan kemampuan pemulihan bencana untuk data Anda, yang memengaruhi daya tahan dan ketersediaannya. Jenis default adalah zone-redundant storage (ZRS). Anda dapat meningkatkan dari locally redundant storage (LRS) ke ZRS, tetapi tidak dapat menurunkan spesifikasi.
-
Zone-redundant storage (ZRS) - Direkomendasikan untuk lingkungan produksi
Opsi ini menyimpan data Anda di beberapa zona (AZ) dalam wilayah yang sama. Desain ini memberikan daya tahan data dan ketersediaan layanan yang lebih tinggi, memastikan akses berkelanjutan bahkan jika seluruh zona mengalami kegagalan.
-
Locally redundant storage (LRS) - Cocok untuk data non-kritis atau uji coba
Opsi ini menyimpan data Anda secara redundan dalam satu zona dengan biaya lebih rendah. Opsi ini tahan terhadap kegagalan perangkat keras tetapi tidak dapat menjamin akses data jika seluruh zona tidak tersedia.
Konsol
Saat membuat bucket, Anda dapat memilih jenis redundansi penyimpanannya di bagian Informasi Dasar.
ossutil
Perintah berikut membuat bucket bernama examplebucket dengan jenis redundansi LRS.
ossutil mb oss://examplebucket --redundancy-type LRS
Untuk detail lebih lanjut, lihat mb (buat bucket).
SDK OSS
Java
Untuk mengatur jenis redundansi penyimpanan, konfigurasikan objek CreateBucketRequest sebagai berikut.
// Buat permintaan bucket dan atur jenis redundansi.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("your-bucket-name");
createBucketRequest.setDataRedundancyType(DataRedundancyType.ZRS); // Tentukan jenis redundansi penyimpanan di sini.
// Opsi yang tersedia: DataRedundancyType.ZRS, DataRedundancyType.LRS
Untuk contoh lengkap, lihat Buat bucket (Java SDK V1).
Python
Saat memanggil metode client.put_bucket, tentukan jenis redundansi penyimpanan dengan parameter create_bucket_configuration.
# Buat objek permintaan dan atur tipe redundansi penyimpanan.
req = oss.PutBucketRequest(
bucket="your-bucket-name",
create_bucket_configuration=oss.CreateBucketConfiguration(
data_redundancy_type='ZRS' # Tentukan tipe redundansi penyimpanan di sini.
)
)
# Opsi yang tersedia: 'ZRS', 'LRS'
Untuk contoh lengkap, lihat Buat bucket (Python SDK V2).
Go
Untuk mengatur jenis redundansi penyimpanan, konfigurasikan field CreateBucketConfiguration saat membuat objek PutBucketRequest.
request := &oss.PutBucketRequest{
Bucket: oss.Ptr("your-bucket-name"),
CreateBucketConfiguration: &oss.CreateBucketConfiguration{
DataRedundancyType: oss.DataRedundancyZRS, // Tentukan jenis redundansi penyimpanan di sini.
},
}
// Opsi yang tersedia: oss.DataRedundancyZRS, oss.DataRedundancyLRS
Untuk contoh lengkap, lihat Buat bucket (Go SDK V2).
PHP
Untuk mengatur jenis redundansi penyimpanan, berikan objek CreateBucketConfiguration ke konstruktor saat membuat objek PutBucketRequest.
// Buat objek permintaan dan atur jenis redundansi penyimpanan.
$request = new Oss\Models\PutBucketRequest(
"your-bucket-name",
null, // acl
null, // resourceGroupId
new Oss\Models\CreateBucketConfiguration(
null, // storageClass
'ZRS' // Tentukan jenis redundansi penyimpanan di sini.
)
);
/*
* Jenis redundansi penyimpanan yang tersedia: 'ZRS', 'LRS'
*/
Untuk contoh lengkap, lihat Buat bucket (PHP SDK V2).
C#
Untuk mengatur jenis redundansi penyimpanan, buat objek CreateBucketRequest dan konfigurasikan propertinya sebagai berikut.
// Buat objek permintaan dan atur jenis redundansi penyimpanan.
var request = new CreateBucketRequest("your-bucket-name");
request.DataRedundancyType = DataRedundancyType.ZRS; // Tentukan jenis redundansi penyimpanan di sini.
// Jenis redundansi penyimpanan yang tersedia: DataRedundancyType.ZRS, DataRedundancyType.LRS
Untuk contoh lengkap, lihat Buat bucket (C# SDK V1).
Node.js
Untuk mengatur jenis redundansi penyimpanan, buat objek options dan berikan ke metode putBucket.
// Buat objek options dan atur jenis redundansi penyimpanan.
const options = {
dataRedundancyType: 'LRS', // Tentukan jenis redundansi penyimpanan di sini.
};
// Jenis redundansi penyimpanan yang tersedia: 'ZRS', 'LRS'
Untuk contoh lengkap, lihat Buat bucket (Node.js SDK).
API
Saat memanggil PutBucket, tentukan jenis redundansi penyimpanan bucket dalam elemen permintaan DataRedundancyType.
Daftar kontrol akses (ACL)
Daftar kontrol akses (ACL) mengontrol kebijakan akses anonim bucket. Izin default adalah private, yang dapat Anda ubah setelah bucket dibuat. Secara default, objek mewarisi izin akses bucket. Anda juga dapat mengatur izin untuk objek individual.
-
private - Sangat direkomendasikan
Ini adalah pengaturan default dan paling aman. Hanya pemilik bucket dan pengguna yang diberi izin melalui kebijakan RAM atau kebijakan bucket yang dapat mengakses bucket. Untuk memberikan akses kepada pengguna lain, lihat Ikhtisar Izin dan Kontrol Akses.
-
public-read - Gunakan dengan hati-hati
Tidak diperlukan autentikasi. Siapa pun, termasuk pengunjung anonim, dapat membaca objek tetapi tidak dapat menulis ke dalamnya.
-
Pengaturan ini membuat data Anda publik, yang dapat mengakibatkan biaya lalu lintas keluar yang tidak terduga. Pengaturan ini cocok untuk skenario yang memerlukan berbagi publik, seperti hosting aset website statis.
-
Jika Anda harus mengaktifkan public-read, konfigurasikan Perlindungan hotlink untuk mengizinkan akses hanya dari sumber tertentu, seperti domain website Anda, guna mencegah hotlinking tidak sah.
-
-
public-read-write - Sangat tidak disarankan
Siapa pun dapat membaca, menulis, dan bahkan menghapus objek dalam bucket. Ini menimbulkan risiko keamanan yang sangat tinggi dan dapat mengakibatkan biaya besar. Gunakan pengaturan ini hanya untuk skenario khusus, seperti repositori sumber daya publik, dan jangan pernah untuk tujuan umum.
Konsol OSS
Karena alasan keamanan, Konsol OSS secara default mengaktifkan Block Public Access dan hanya mendukung pembuatan bucket private.
Untuk mengubah ACL menjadi Public Read atau Public Read/Write, ikuti langkah-langkah berikut:
-
Klik nama bucket target.
-
Di panel navigasi kiri, pilih Permission Control > Block Public Access dan nonaktifkan kebijakan tersebut.
-
Buka tab ACL dan klik Set.
-
Ikuti petunjuk di layar untuk mengubah ACL bucket menjadi Public Read atau Public Read/Write.
Ossutil
Perintah ini membuat bucket bernama examplebucket dan mengatur ACL-nya ke private.
ossutil mb oss://examplebucket --acl=private
Untuk informasi lebih lanjut tentang perintah ini, lihat mb (buat bucket).
SDK OSS
Java
Atur izin akses dengan mengonfigurasi objek CreateBucketRequest sebagai berikut.
// Siapkan objek permintaan yang berisi izin akses.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("your-bucket-name");
createBucketRequest.setCannedACL(CannedAccessControlList.Private); // Tentukan ACL bucket di sini.
// Nilai opsional: CannedAccessControlList.Private, CannedAccessControlList.PublicRead, CannedAccessControlList.PublicReadWrite
Untuk contoh lengkap, lihat Buat bucket (Java SDK V1).
Python
Tentukan izin akses dalam metode client.put_bucket dengan parameter create_bucket_configuration.
# Siapkan objek permintaan yang berisi izin akses.
req = oss.PutBucketRequest(
bucket="your-bucket-name",
create_bucket_configuration=oss.CreateBucketConfiguration(
access_control_policy='private' # Tentukan izin akses di sini.
)
)
# Nilai opsional: 'private', 'public-read', 'public-read-write'
Untuk contoh lengkap, lihat Buat bucket (Python SDK V2).
Go
Untuk mengatur izin akses, konfigurasikan field Acl saat membuat PutBucketRequest.
// Siapkan objek permintaan yang berisi konfigurasi seperti izin akses.
request := &oss.PutBucketRequest{
Bucket: oss.Ptr("your-bucket-name"),
Acl: oss.BucketACLPrivate, // Tentukan izin akses di sini.
CreateBucketConfiguration: &oss.CreateBucketConfiguration{
},
}
// Nilai opsional: oss.BucketACLPrivate, oss.BucketACLPublicRead, oss.BucketACLPublicReadWrite
Untuk contoh lengkap, lihat Buat bucket (Go SDK V2).
PHP
Untuk mengatur izin akses, berikan nilai untuk Acl sebagai parameter kedua saat membuat objek PutBucketRequest.
// Siapkan objek permintaan yang berisi konfigurasi seperti izin akses.
$request = new Oss\Models\PutBucketRequest(
"your-bucket-name",
'private', // Tentukan izin akses di sini (parameter kedua).
null, // resourceGroupId
new Oss\Models\CreateBucketConfiguration(
'IA', // Tentukan kelas penyimpanan di sini.
'ZRS' // Tentukan jenis redundansi di sini.
)
);
/*
* Nilai opsional: 'private', 'public-read', 'public-read-write'
*/
Untuk contoh lengkap, lihat Buat bucket (PHP SDK V2).
C#
Untuk mengatur izin akses, buat dan konfigurasikan objek CreateBucketRequest sebagai berikut.
// Siapkan objek permintaan yang berisi konfigurasi izin akses.
var request = new CreateBucketRequest("your-bucket-name");
request.ACL = CannedAccessControlList.Private; // Tentukan izin akses di sini.
// Nilai opsional: CannedAccessControlList.Private, CannedAccessControlList.PublicRead, CannedAccessControlList.PublicReadWrite
Untuk contoh lengkap, lihat Buat bucket (C# SDK V1).
Node.js
Untuk mengatur izin akses, buat objek options dan berikan ke metode putBucket.
// Siapkan objek options yang berisi izin akses.
const options = {
acl: 'private', // Tentukan izin akses di sini.
};
// Nilai opsional: 'private', 'public-read','public-read-write'
Untuk contoh lengkap, lihat Buat bucket (Node.js SDK).
Android
Untuk mengatur izin akses, buat dan konfigurasikan objek CreateBucketRequest sebagai berikut.
// Siapkan objek permintaan yang berisi konfigurasi seperti izin akses.
CreateBucketRequest createBucketRequest = new CreateBucketRequest("your-bucket-name");
createBucketRequest.setBucketACL(CannedAccessControlList.Private); // Tentukan izin akses di sini.
// Nilai opsional: CannedAccessControlList.Private, CannedAccessControlList.PublicRead, CannedAccessControlList.PublicReadWrite
Untuk contoh lengkap, lihat Buat bucket (Android SDK).
iOS
Untuk mengatur izin akses, buat objek OSSCreateBucketRequest dan konfigurasikan propertinya sebagai berikut.
// Siapkan objek permintaan yang berisi konfigurasi seperti izin akses.
OSSCreateBucketRequest *create = [OSSCreateBucketRequest new];
create.bucketName = @"your-bucket-name";
create.xOssACL = @"private"; // Tentukan izin akses di sini.
// Nilai opsional: @"private", @"public-read", @"public-read-write", dll.
Untuk contoh lengkap, lihat Buat bucket (iOS SDK).
API
Saat memanggil operasi PutBucket, tentukan ACL bucket dalam header permintaan x-oss-acl.
Blokir akses publik
Pengaturan keamanan global ini mencegah eksposur data publik yang tidak disengaja akibat konfigurasi ACL atau kebijakan bucket yang salah.
Saat diaktifkan, Anda hanya dapat membuat bucket private. Anda tidak dapat mengatur ACL public-read atau public-read-write, atau menerapkan kebijakan bucket yang memberikan akses publik. Secara default, OSS mengaktifkan Blokir Akses Publik saat Anda membuat bucket. Jika bisnis Anda memerlukan akses publik, Anda dapat menonaktifkan fitur ini secara manual setelah bucket dibuat. Namun, demi alasan keamanan, kami menyarankan agar fitur ini tetap diaktifkan.
Fitur opsional
Anda dapat mengonfigurasi fitur-fitur berikut selama atau setelah pembuatan bucket.
-
Pengendalian versi
Pengendalian versi melindungi data Anda dari penghapusan atau penimpaan yang tidak disengaja. Saat Anda mengunggah objek dengan nama yang sama seperti objek yang sudah ada, OSS secara otomatis membuat versi baru alih-alih menimpa yang asli. Anda dapat memulihkan versi sebelumnya dengan satu klik untuk memulihkan dari operasi yang tidak disengaja. Untuk informasi lebih lanjut, lihat pengendalian versi.
-
Enkripsi sisi server
Enkripsi sisi server secara otomatis mengenkripsi data saat diam. OSS mengenkripsi data saat ditulis dan mendekripsinya saat dibaca. Kami menyarankan Anda mengaktifkan setidaknya opsi "Fully managed by OSS". Untuk informasi lebih lanjut, lihat enkripsi sisi server.
-
Kelompok sumber daya
Kelompok sumber daya ideal untuk kolaborasi multi-tim. Anda dapat mengelompokkan bucket berdasarkan departemen atau proyek untuk mengaktifkan kontrol akses independen dan akuntansi biaya. Untuk informasi lebih lanjut, lihat Gunakan kelompok sumber daya.
-
Kueri log waktu nyata
Saat diaktifkan, Anda dapat dengan cepat mengkueri dan menganalisis log akses di konsol untuk memecahkan masalah akses tidak biasa, melakukan analisis perilaku pengguna, dan mengidentifikasi siapa yang mengakses objek mana dan kapan. Untuk informasi lebih lanjut, lihat kueri log waktu nyata.
-
Backup terjadwal
Backup terjadwal mengotomatiskan pencadangan data. Untuk informasi lebih lanjut, lihat Konfigurasikan backup terjadwal untuk bucket.
-
OSS-HDFS
Ideal untuk skenario data lake, OSS-HDFS memungkinkan framework data besar seperti Spark menganalisis data OSS secara langsung tanpa migrasi. Untuk informasi lebih lanjut, lihat Apa itu Layanan OSS-HDFS?.
-
Bucket tagging
Tagging bucket memfasilitasi manajemen batch dan analisis biaya. Anda dapat mengklasifikasikan bucket menggunakan tag pasangan kunci-nilai, seperti
department:research. Untuk informasi lebih lanjut, lihat Kelola tag bucket.
Penagihan
Membuat bucket gratis. Anda dikenai biaya berdasarkan penggunaan setelah menyimpan data di bucket. Untuk menghindari biaya yang tidak perlu, pertimbangkan hal berikut saat mengonfigurasi bucket Anda:
-
Cocokkan paket sumber daya dengan jenis redundansi penyimpanan
Jenis paket sumber daya Anda harus persis sesuai dengan jenis redundansi penyimpanan bucket Anda. Misalnya, paket sumber daya LRS tidak dapat digunakan untuk mengimbangi biaya bucket ZRS, dan sebaliknya. Pastikan untuk mengonfirmasi pilihan Anda saat pembuatan. -
Penagihan khusus untuk kelas penyimpanan non-Standard
Meskipun kelas penyimpanan Infrequent Access, Archive, Cold Archive, dan Deep Cold Archive memiliki biaya penyimpanan lebih rendah, kelas-kelas ini memiliki durasi penyimpanan minimum dan dikenai biaya pengambilan data.-
Penghapusan atau modifikasi dini: Jika objek dihapus atau dimodifikasi sebelum durasi penyimpanan minimumnya berakhir, OSS tetap membebankan biaya penyimpanan untuk durasi yang tersisa.
-
Pembacaan data: Kecuali untuk kelas penyimpanan Standard, mengakses data di kelas penyimpanan lainnya dikenai biaya pengambilan data tambahan.
-
-
Risiko akses publik
Jika Anda mengatur ACL ke public-read atau public-read-write, Anda mengekspos data Anda ke Internet. Hal ini dapat menarik lalu lintas berbahaya, mengakibatkan biaya lalu lintas yang sangat tinggi.