Object Storage Service (OSS) menyediakan berbagai kelas penyimpanan, seperti Standard, Infrequent Access (IA), Archive, Cold Archive, dan Deep Cold Archive, yang memenuhi beragam kebutuhan penyimpanan data—mulai dari hot hingga cold. Di OSS, konten objek tidak dapat diubah setelah objek dibuat, sehingga Anda tidak dapat langsung mengubah kelas penyimpanan objek yang sudah ada. Sebagai gantinya, Anda perlu membuat objek baru dengan kelas penyimpanan yang diinginkan menggunakan metode Bucket.CopyObject, yang menyalin objek sumber ke objek baru dengan kelas penyimpanan target.
Catatan penggunaan
Saat menggunakan alat packaging seperti Webpack dan Browserify, instal OSS SDK untuk Browser.js dengan menjalankan perintah npm install ali-oss.
Jika Anda ingin mengakses bucket OSS dari browser tetapi bucket tersebut belum dikonfigurasi dengan aturan CORS, browser akan menolak permintaan tersebut. Oleh karena itu, Anda harus mengonfigurasi aturan CORS pada bucket sebelum mengaksesnya dari browser. Untuk informasi selengkapnya, lihat Instalasi.
Dalam kebanyakan kasus, OSS SDK untuk Browser.js digunakan di browser. Untuk mencegah pasangan AccessKey Anda terpapar, kami menyarankan agar Anda menggunakan kredensial akses temporary yang diperoleh dari Security Token Service (STS) untuk mengakses OSS.
Kredensial akses temporary terdiri atas pasangan AccessKey dan token keamanan. Pasangan AccessKey mencakup ID AccessKey dan Rahasia AccessKey. Untuk informasi selengkapnya tentang cara memperoleh kredensial akses temporary, lihat Gunakan STS untuk otorisasi akses temporary.
Kode contoh
Mengonversi kelas penyimpanan objek dari Standard atau Infrequent Access ke Archive
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button id='upload'>Upload</button>
<button id='copy'>Convert object storage class</button>
<!--Impor file SDK.-->
<script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script type="text/javascript">
const client = new OSS({
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel yourRegion ke oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// ID AccessKey dan Rahasia AccessKey temporary yang diperoleh dari STS.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Token keamanan yang diperoleh dari STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket. Contoh: examplebucket.
bucket: "examplebucket",
});
const upload = document.getElementById('upload')
const copy = document.getElementById('copy')
// Tentukan konten file yang akan di-upload.
const file = new Blob(['examplecontent'])
// Tentukan path lengkap objek yang akan di-upload ke examplebucket. Contoh: exampledir/exampleobject.txt.
const fileName = 'exampledir/exampleobject.txt'
// Upload file.
upload.addEventListener('click', () => {
client.put(fileName, file).then(r => console.log(r))
})
// Mengonversi kelas penyimpanan objek menggunakan metode copy.
copy.addEventListener('click', () => {
// Tentukan nama objek tujuan. Contoh: newexampleobject.txt.
client.copy('newexampleobject.txt', fileName, {
headers: {
// Setel kelas penyimpanan objek ke Archive. Untuk mengubah kelas penyimpanan ke Cold Archive, ganti Archive dengan ColdArchive.
'x-oss-storage-class': 'Archive'
}
}
).then(r => {
console.log(r.res.status)
})
})
</script>
</body>
</html>Mengonversi kelas penyimpanan objek dari Archive ke Infrequent Access atau Standard
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button id="check">Check</button>
<button id="restore">Restore</button>
<button id="change">Convert</button>
<!--Impor file SDK.-->
<script
type="text/javascript"
src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"
></script>
<script type="text/javascript">
const client = new OSS({
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel yourRegion ke oss-cn-hangzhou.
region: 'yourRegion',
// ID AccessKey dan Rahasia AccessKey temporary yang diperoleh dari STS.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Token keamanan yang diperoleh dari STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket. Contoh: examplebucket.
bucket: "examplebucket",
});
const check = document.getElementById("check");
const change = document.getElementById("change");
const restore = document.getElementById("restore");
check.addEventListener("click", () => {
console.log("Periksa tipe objek");
// Periksa Header di developer tools untuk mengonfirmasi kelas penyimpanan objek.
client.head("srcobject.txt").then((r) => console.log(r));
});
// Pulihkan objek.
restore.addEventListener("click", () => {
// Tentukan nama objek yang akan dipulihkan. Contoh: srcobject.txt.
client.restore("srcobject.txt").then((r) => {
console.log(r);
console.log("Mulai memulihkan");
});
});
// Setelah objek dipulihkan, konversi kelas penyimpanannya.
change.addEventListener("click", () => {
// Waktu pemulihan bergantung pada ukuran objek.
console.log("Mulai mengonversi");
client
// Tentukan destobject.txt sebagai nama objek tujuan setelah srcobject.txt disalin.
.copy("destobject.txt", "srcobject.txt", {
// Setel kelas penyimpanan objek ke Infrequent Access (IA). Untuk mengubah kelas penyimpanan ke Standard, ganti IA dengan Standard.
headers: { "x-oss-storage-class": "IA" },
})
.then((r) => console.log(r))
// Penyebab umum kesalahan konversi adalah objek masih dalam proses pemulihan.
.catch((e) => console.log("Kesalahan konversi:", e));
});
</script>
</body>
</html>
Referensi
Untuk kode contoh lengkap tentang konversi kelas penyimpanan objek, lihat contoh di GitHub.
Untuk informasi selengkapnya tentang operasi API yang digunakan untuk mengonversi kelas penyimpanan objek, lihat CopyObject.