OSS di CloudBox memungkinkan Anda memantau dan memproses data lokal. Layanan ini ideal untuk kasus penggunaan yang memerlukan latensi rendah atau manajemen terpadu di beberapa kantor cabang. Topik ini menjelaskan operasi dasar OSS di CloudBox, termasuk cara membuat bucket, mengunggah objek, dan mengunduh objek.
Prasyarat
-
OSS di CloudBox hanya tersedia di wilayah Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Shenzhen), Tiongkok (Heyuan), Tiongkok (Beijing), dan Tiongkok (Chengdu).
-
Anda telah membeli CloudBox.
-
Anda telah membuat VPC dan vSwitch untuk CloudBox.
-
Anda telah menghubungi technical support untuk meminta jenis jaringan SingleTunnel pada VPC CloudBox Anda.
Langkah 1: Buat bucket
Gunakan Konsol OSS
-
Masuk ke Konsol OSS.
-
Pada panel navigasi sebelah kiri, pilih Data Service > OSS on CloudBox Buckets, lalu klik Create Bucket di pojok kiri atas.
-
Pada halaman Create Bucket, masukkan nama bucket, terima pengaturan default, lalu klik OK.
Nama bucket harus memenuhi persyaratan berikut:
-
Nama bucket harus unik dalam CloudBox.
- Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).
- Nama harus dimulai dan diakhiri dengan huruf kecil atau angka.
- Panjang nama harus antara 3 hingga 63 karakter.
-
Gunakan Java SDK
Untuk membuat bucket OSS di CloudBox menggunakan SDK, Anda harus menggunakan Alibaba Cloud SDK for Java versi 3.15.0 atau yang lebih baru.
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.CreateBucketRequest;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
public class Demo {
public static void main(String[] args) throws Exception {
// Tentukan titik akhir data untuk bucket OSS di CloudBox.
String endpoint = "https://cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket OSS di CloudBox, misalnya examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah tempat bucket OSS di CloudBox berada.
String region = "cn-hangzhou";
// Tentukan ID Cloud Box.
String cloudBoxId = "cb-f8z7yvzgwfkl9q0h****";
// Buat instans OSSClient.
// Panggil shutdown() untuk melepaskan sumber daya ketika klien tidak lagi diperlukan.
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
conf.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
.clientConfiguration(conf)
.region(region)
.cloudBoxId(cloudBoxId)
.build();
try {
// Buat objek CreateBucketRequest.
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
// Atur ACL bucket OSS di CloudBox menjadi public-read. ACL default adalah private.
//createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
// Buat bucket OSS di CloudBox.
ossClient.createBucket(createBucketRequest);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, artinya permintaan Anda sampai ke OSS tetapi ditolak dengan tanggapan error.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, artinya klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "misalnya tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
Gunakan ossutil
Untuk membuat bucket OSS di CloudBox dengan ossutil, lihat put-bucket.
Gunakan REST API
Jika aplikasi Anda memerlukan kustomisasi ekstensif, Anda dapat langsung memanggil REST API. Hal ini mengharuskan Anda menulis kode untuk menghitung signature secara manual. Untuk informasi selengkapnya, lihat PutBucket.
Langkah 2: Unggah objek
Gunakan Java SDK
Anda dapat mengunggah file lokal ke bucket OSS di CloudBox menggunakan OSS SDK for Java versi 3.15.0 atau yang lebih baru.
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import java.io.File;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
public class Demo {
public static void main(String[] args) throws Exception {
// Tentukan titik akhir data bucket OSS di CloudBox.
String endpoint = "https://cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket OSS di CloudBox. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah tempat bucket OSS di CloudBox berada.
String region = "cn-hangzhou";
// Tentukan ID CloudBox.
String cloudBoxId = "cb-f8z7yvzgwfkl9q0h****";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Contoh: exampledir/exampleobject.txt.
String objectName = "exampledir/exampleobject.txt";
// Tentukan path lengkap file lokal. Contoh: D:\\localpath\\examplefile.txt.
// Jika Anda tidak menentukan path lokal, file akan diunggah dari path lokal proyek tempat program contoh ini berada.
String filePath= "D:\\localpath\\examplefile.txt";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepaskan sumber daya.
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
conf.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
.clientConfiguration(conf)
.region(region)
.cloudBoxId(cloudBoxId)
.build();
try {
// Buat objek PutObjectRequest.
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
// Untuk mengatur kelas penyimpanan dan izin akses selama pengunggahan, lihat kode contoh berikut.
// ObjectMetadata metadata = new ObjectMetadata();
// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
// metadata.setObjectAcl(CannedAccessControlList.Private);
// putObjectRequest.setMetadata(metadata);
// Unggah file.
ossClient.putObject(putObjectRequest);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, artinya permintaan Anda sampai ke OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, artinya klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "misalnya tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
Gunakan ossutil
Untuk pengunggahan sederhana menggunakan ossutil, lihat cp (upload files).
Gunakan REST API
Jika aplikasi Anda memerlukan kustomisasi ekstensif, Anda dapat langsung memanggil REST API. Hal ini mengharuskan Anda menulis kode untuk menghitung signature secara manual. Untuk informasi selengkapnya, lihat PutObject.
Langkah 3: Unduh objek
Gunakan Java SDK
Anda hanya dapat mengunduh objek menggunakan Java SDK versi 3.15.0 atau yang lebih baru.
package com.aliyun.oss.demo;
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.GetObjectRequest;
import java.io.File;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
public class Demo {
public static void main(String[] args) throws Exception {
// Tentukan titik akhir data bucket OSS di CloudBox.
String endpoint = "https://cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket OSS di CloudBox. Misalnya, examplebucket.
String bucketName = "examplebucket";
// Tentukan wilayah tempat bucket OSS di CloudBox berada.
String region = "cn-hangzhou";
// Tentukan ID CloudBox.
String cloudBoxId = "cb-f8z7yvzgwfkl9q0h****";
// Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt.
String objectName = "exampledir/exampleobject.txt";
// Tentukan path lengkap file lokal.
String pathName = "D:\\localpath\\examplefile.txt";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi diperlukan, panggil metode shutdown untuk melepaskan sumber dayanya.
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
conf.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
.clientConfiguration(conf)
.region(region)
.cloudBoxId(cloudBoxId)
.build();
try {
// Unduh objek ke file lokal dan simpan ke path lokal yang ditentukan. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika belum ada, file baru akan dibuat.
// Jika Anda tidak menentukan path lokal, file yang diunduh akan disimpan ke path lokal proyek tempat program contoh ini berada.
ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, artinya permintaan Anda sampai ke OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, artinya klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "misalnya tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
Gunakan ossutil
Untuk pengunduhan sederhana menggunakan ossutil, lihat cp (download files).
Gunakan REST API
Jika aplikasi Anda memerlukan kustomisasi ekstensif, Anda dapat langsung memanggil REST API. Hal ini mengharuskan Anda menulis kode untuk menghitung signature secara manual. Untuk informasi selengkapnya, lihat GetObject.