Anda dapat menggunakan aturan lifecycle berdasarkan waktu akses terakhir untuk secara otomatis memantau pola akses data dan mengidentifikasi data dingin. Selanjutnya, Anda dapat mengubah kelas penyimpanan data tersebut guna menerapkan tiering data cerdas dan mengurangi biaya penyimpanan.
Deskripsi skenario
Sebuah situs web multimedia perlu mengklasifikasikan datanya sebagai hot atau cold berdasarkan waktu akses terakhir. Metode tradisional memerlukan analisis log secara manual. Namun, penggunaan aturan lifecycle berdasarkan waktu akses terakhir memungkinkan identifikasi dan tiering data secara otomatis.
Dalam skenario ini, data dikategorikan dan disimpan di jalur berbeda dalam bucket examplebucket. Tujuannya adalah mengalihkan beberapa data ke kelas penyimpanan berbiaya lebih rendah setelah periode tertentu.
Jalur penyimpanan | Skenario penyimpanan | Kebijakan lifecycle | Hasil |
data/ | Menyimpan video streaming langsung WMV. Video-video ini jarang diakses dalam dua bulan pertama setelah diunggah dan hampir tidak pernah diakses setelah itu. | Ubah ke kelas penyimpanan Infrequent Access (IA) 200 hari setelah akses terakhir. Jika data diakses lagi, tetap berada di kelas penyimpanan IA. | Kelas penyimpanan diubah setelah jumlah hari yang ditentukan. Data yang tidak memenuhi kriteria tetap berada di kelas penyimpanan Standard. |
Menyimpan data video film MP4. Sebagian besar file sering diakses dalam setiap periode enam bulan. | |||
log/ | Menyimpan sejumlah besar data log. Sejumlah kecil file memiliki beberapa catatan akses dalam tiga bulan terakhir. Hampir semua file tidak memiliki catatan akses sama sekali enam bulan setelah diunggah. |
|
Dengan kebijakan lifecycle berdasarkan waktu akses terakhir, OSS secara otomatis mengidentifikasi dan melakukan tiering data hot dan cold. Misalnya, video MP4 yang sering diakses di jalur data/ tetap berada di kelas penyimpanan Standard. Video MP4 yang tidak diakses selama enam bulan akan dialihkan ke kelas penyimpanan Infrequent Access setelah 200 hari. Jika Anda mengonfigurasi aturan lifecycle berdasarkan waktu modifikasi terakhir, data di jalur data/ hanya dapat dialihkan atau dihapus berdasarkan waktu modifikasi terakhirnya, sehingga mencegah penerapan tiering data cerdas berdasarkan frekuensi akses file.
Kebijakan lifecycle dan tindakan yang direkomendasikan dalam skenario ini hanya bersifat referensi. Anda dapat mengonfigurasi aturan lifecycle sesuai kebutuhan bisnis spesifik Anda.
Prasyarat
Pelacakan akses diaktifkan.
Untuk mengalihkan objek dari kelas penyimpanan Standard atau Infrequent Access ke kelas penyimpanan Archive, Cold Archive, atau Deep Cold Archive, Anda harus mengajukan tiket untuk meminta fitur ini.
PentingSetelah tiket Anda disetujui, jika Anda menggunakan kebijakan berdasarkan waktu akses terakhir untuk mengalihkan objek dari kelas penyimpanan Standard atau Infrequent Access ke kelas penyimpanan Archive, Cold Archive, atau Deep Cold Archive, waktu akses terakhir objek-objek tersebut secara default diatur ke waktu saat pelacakan akses diaktifkan untuk bucket tersebut.
Prosedur
Gunakan Konsol OSS
Aktifkan pelacakan akses.
Masuk ke Konsol OSS.
Di panel navigasi sebelah kiri, klik Buckets. Pada halaman Buckets, temukan dan klik bucket yang diinginkan.
Di panel navigasi sebelah kiri, pilih Data Management > Lifecycle.
Pada halaman Lifecycle, aktifkan sakelar Enable Access Tracking.
CatatanSetelah Anda mengaktifkan pelacakan akses, OSS menetapkan waktu akses terakhir untuk semua objek dalam bucket ke waktu saat pelacakan akses diaktifkan.
Konfigurasikan aturan lifecycle.
Pada halaman Lifecycle, klik Create Rule.
Pada panel Create Lifecycle Rule, konfigurasikan aturan lifecycle untuk awalan data/ dan awalan log/ seperti dijelaskan pada bagian berikut.
Aturan lifecycle untuk awalan data/
Konfigurasikan parameter yang diperlukan untuk aturan lifecycle awalan data/ seperti dijelaskan di bawah. Anda dapat mempertahankan pengaturan default untuk parameter lainnya.
Item konfigurasi
Deskripsi
Status
Klik Start.
Applied To
Pilih Match by Prefix.
Prefix
Masukkan
data/.Object Lifecycle
Pilih Specify Days.
Lifecycle-based Rules
Dari daftar tarik-turun, pilih Last Access Time. Masukkan 200 hari. Data secara otomatis dialihkan ke Infrequent Access (Data remains in IA after being accessed).
Aturan lifecycle untuk awalan log/
Konfigurasikan parameter yang diperlukan untuk aturan lifecycle awalan log/ seperti dijelaskan di bawah. Anda dapat mempertahankan pengaturan default untuk parameter lainnya.
Item konfigurasi
Deskripsi
Status
Pilih Start.
Applied To
Pilih Match by Prefix.
Prefix
Masukkan
log/.Object Lifecycle
Pilih Specify Days.
Lifecycle-based Rules
Dari daftar tarik-turun, pilih Last Access Time. Masukkan 120 hari. Data secara otomatis dialihkan ke Infrequent Access (Data remains in IA after being accessed).
Dari daftar tarik-turun, pilih Last Access Time. Masukkan 250 hari. Data secara otomatis dialihkan ke Archive.
Klik OK.
Gunakan SDK Alibaba Cloud
Hanya SDK Java, Python, dan Go yang mendukung pembuatan aturan lifecycle berdasarkan waktu akses terakhir. Sebelum membuat aturan lifecycle berdasarkan waktu akses terakhir, Anda harus mengaktifkan pelacakan akses untuk bucket yang ditentukan.
Aktifkan pelacakan akses.
Java
import com.aliyun.oss.*; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.common.comm.SignVersion; import com.aliyun.oss.model.AccessMonitor; public class Demo { public static void main(String[] args) throws Exception { // Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint aktual Anda. String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // Tentukan nama bucket. Contoh: examplebucket. String bucketName = "examplebucket"; // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. String region = "cn-hangzhou"; // Buat instance OSSClient. // Panggil metode shutdown untuk melepaskan sumber daya terkait ketika OSSClient tidak lagi digunakan. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // Aktifkan pelacakan akses untuk bucket. Sebelum mengubah status pelacakan akses dari Enabled ke Disabled, pastikan tidak ada aturan lifecycle berdasarkan waktu akses terakhir untuk bucket tersebut. ossClient.putBucketAccessMonitor(bucketName, AccessMonitor.AccessMonitorStatus.Enabled.toString()); } 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(); } } } }Python
# -*- coding: utf-8 -*- import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider()) # Tentukan endpoint untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. endpoint = "https://oss-cn-hangzhou.aliyuncs.com" # Tentukan wilayah yang sesuai dengan endpoint, misalnya cn-hangzhou. Catatan: Parameter ini wajib untuk signature V4. region = "cn-hangzhou" # Ganti "examplebucket" dengan nama bucket Anda. bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region) # Aktifkan pelacakan akses untuk bucket. Setelah pelacakan akses diaktifkan, jika Anda ingin mengubah status menjadi Disabled, pastikan bucket tidak memiliki aturan lifecycle berdasarkan aturan pencocokan LastAccessTime. bucket.put_bucket_access_monitor("Enabled")Go
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" ) // Definisikan variabel global. var ( region string // Wilayah bucket. bucketName string // Nama bucket. ) // Fungsi init menginisialisasi parameter baris perintah. func init() { flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.") flag.StringVar(&bucketName, "bucket", "", "Nama bucket.") } // Fungsi main mengaktifkan pelacakan akses untuk bucket. func main() { // Parsing parameter baris perintah. flag.Parse() // Periksa apakah nama bucket kosong. if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // Periksa apakah wilayah kosong. if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // Muat konfigurasi default, dan atur penyedia kredensial serta wilayah. cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region) // Buat klien OSS. client := oss.NewClient(cfg) // Buat permintaan untuk mengaktifkan pelacakan akses untuk bucket. request := &oss.PutBucketAccessMonitorRequest{ Bucket: oss.Ptr(bucketName), AccessMonitorConfiguration: &oss.AccessMonitorConfiguration{ Status: oss.AccessMonitorStatusEnabled, // Aktifkan pelacakan akses. }, } // Jalankan operasi untuk mengaktifkan pelacakan akses untuk bucket. putResult, err := client.PutBucketAccessMonitor(context.TODO(), request) if err != nil { log.Fatalf("failed to put bucket access monitor %v", err) } // Cetak hasilnya. log.Printf("put bucket access monitor result: %#v\n", putResult) }Konfigurasikan aturan lifecycle berdasarkan waktu akses terakhir untuk awalan
data/dan awalanlog/.Java
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.*; import java.util.ArrayList; import java.util.List; public class Lifecycle { public static void main(String[] args) throws Exception { // Endpoint diatur ke China (Hangzhou) dalam contoh ini. Tentukan endpoint aktual. String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // Tentukan nama bucket, misalnya examplebucket. String bucketName = "examplebucket"; // Buat instance OSSClient. // Saat instance OSSClient tidak lagi diperlukan, panggil metode shutdown untuk melepaskan sumber daya. OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider); try { String ruleId1 = "rule1"; String ruleId2 = "rule2"; // Tentukan awalan sebagai data/. String matchPrefix = "data/"; // Tentukan awalan sebagai log/. String matchPrefix2 = "log/"; SetBucketLifecycleRequest request = new SetBucketLifecycleRequest(bucketName); // Dalam aturan lifecycle 1, alihkan semua file dengan awalan data/ ke kelas penyimpanan Infrequent Access 200 hari setelah waktu akses terakhirnya. Ketika file-file ini diakses lagi, mereka tetap berada di kelas penyimpanan Infrequent Access. List<LifecycleRule.StorageTransition> storageTransitions = new ArrayList<LifecycleRule.StorageTransition>(); LifecycleRule.StorageTransition storageTransition = new LifecycleRule.StorageTransition(); storageTransition.setStorageClass(StorageClass.IA); storageTransition.setExpirationDays(200); storageTransition.setIsAccessTime(true); storageTransition.setReturnToStdWhenVisit(false); storageTransitions.add(storageTransition); LifecycleRule rule = new LifecycleRule(ruleId1, matchPrefix, LifecycleRule.RuleStatus.Enabled); rule.setStorageTransition(storageTransitions); request.AddLifecycleRule(rule); // Dalam aturan lifecycle 2, alihkan semua file dengan awalan log/ ke kelas penyimpanan Infrequent Access 120 hari setelah waktu akses terakhirnya. Ketika file-file ini diakses lagi, mereka tetap berada di kelas penyimpanan Infrequent Access. List<LifecycleRule.StorageTransition> storageTransitions2 = new ArrayList<LifecycleRule.StorageTransition>(); LifecycleRule.StorageTransition storageTransition2 = new LifecycleRule.StorageTransition(); storageTransition2.setStorageClass(StorageClass.IA); storageTransition2.setExpirationDays(120); storageTransition2.setIsAccessTime(true); storageTransition2.setReturnToStdWhenVisit(false); storageTransitions2.add(storageTransition2); // Dalam aturan yang sama, alihkan semua file dengan awalan log/ ke kelas penyimpanan Archive 250 hari setelah waktu modifikasi terakhirnya. LifecycleRule.StorageTransition storageTransition3 = new LifecycleRule.StorageTransition(); storageTransition3.setStorageClass(StorageClass.Archive); storageTransition3.setExpirationDays(250); storageTransition3.setIsAccessTime(false); storageTransitions2.add(storageTransition3); LifecycleRule rule2 = new LifecycleRule(ruleId2, matchPrefix2, LifecycleRule.RuleStatus.Enabled); rule2.setStorageTransition(storageTransitions2); request.AddLifecycleRule(rule2); VoidResult result = ossClient.setBucketLifecycle(request); System.out.println("Return status code:"+result.getResponse().getStatusCode()+" set lifecycle succeed"); } 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(); } } } }Python
# -*- coding: utf-8 -*- import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider from oss2.models import LifecycleRule, BucketLifecycle, StorageTransition # 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. auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider()) # 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. # Tentukan nama bucket, misalnya examplebucket. bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket') # Dalam aturan lifecycle 1, alihkan semua file dengan awalan data/ ke kelas penyimpanan Infrequent Access 200 hari setelah waktu akses terakhirnya. Ketika file-file ini diakses lagi, mereka tetap berada di kelas penyimpanan Infrequent Access. rule1 = LifecycleRule('rule1', 'data/', status=LifecycleRule.ENABLED) rule1.storage_transitions = [StorageTransition(days=200, storage_class=oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=False)] # Dalam aturan lifecycle 2, alihkan semua file dengan awalan log/ ke kelas penyimpanan Infrequent Access 120 hari setelah waktu akses terakhirnya. Ketika file-file ini diakses lagi, mereka tetap berada di kelas penyimpanan Infrequent Access. # Dalam aturan yang sama, alihkan semua file dengan awalan log/ ke kelas penyimpanan Archive 250 hari setelah waktu modifikasi terakhirnya. rule2 = LifecycleRule('rule2', 'log/', status=LifecycleRule.ENABLED) rule2.storage_transitions = [StorageTransition(days=120, storage_class=oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=False), StorageTransition(days=250, storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE, is_access_time=False)] lifecycle = BucketLifecycle([rule1, rule2]) # Tetapkan aturan lifecycle. result = bucket.put_bucket_lifecycle(lifecycle) print('Lifecycle rule set successfully. Return status:' + str(result.status))Go
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" ) // Definisikan variabel global. var ( region string // Wilayah tempat bucket berada. bucketName string // Nama bucket. ) // Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah. func init() { flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.") flag.StringVar(&bucketName, "bucket", "", "Nama bucket.") } func main() { // Parsing parameter baris perintah. flag.Parse() // Periksa apakah nama bucket telah ditentukan. if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // Periksa apakah wilayah telah ditentukan. if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // Muat konfigurasi default dan tentukan penyedia kredensial serta wilayah. cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region) // Buat klien OSS. client := oss.NewClient(cfg) // Buat permintaan untuk mengonfigurasi aturan lifecycle untuk bucket. request := &oss.PutBucketLifecycleRequest{ Bucket: oss.Ptr(bucketName), // Nama bucket. LifecycleConfiguration: &oss.LifecycleConfiguration{ Rules: []oss.LifecycleRule{ { // Konfigurasikan rule1 untuk mengubah kelas penyimpanan objek yang namanya mengandung awalan data/ menjadi IA 200 hari setelah akses terakhir. Tentukan bahwa objek tetap berada di kelas penyimpanan IA ketika diakses lagi. ID: oss.Ptr("rule1"), Status: oss.Ptr("Enabled"), Prefix: oss.Ptr("data/"), Transitions: []oss.LifecycleRuleTransition{ { Days: oss.Ptr(int32(200)), StorageClass: oss.StorageClassIA, IsAccessTime: oss.Ptr(true), // Atur parameter ini ke true untuk menentukan bahwa kelas penyimpanan objek diubah berdasarkan waktu akses terakhir. ReturnToStdWhenVisit: oss.Ptr(false), }, }, }, { // Konfigurasikan rule2 untuk mengubah kelas penyimpanan objek yang namanya mengandung awalan log/ menjadi IA 120 hari setelah akses terakhir. Tentukan bahwa objek tetap berada di kelas penyimpanan IA ketika diakses lagi. // Ubah kelas penyimpanan objek yang namanya mengandung awalan log/ menjadi Archive 250 hari setelah akses terakhir. ID: oss.Ptr("rule2"), Status: oss.Ptr("Enabled"), Prefix: oss.Ptr("log/"), Transitions: []oss.LifecycleRuleTransition{ { Days: oss.Ptr(int32(120)), StorageClass: oss.StorageClassIA, IsAccessTime: oss.Ptr(true), // Atur parameter ini ke true untuk menentukan bahwa kelas penyimpanan objek diubah berdasarkan waktu akses terakhir. ReturnToStdWhenVisit: oss.Ptr(false), }, { Days: oss.Ptr(int32(250)), StorageClass: oss.StorageClassArchive, IsAccessTime: oss.Ptr(true), ReturnToStdWhenVisit: oss.Ptr(false), }, }, }, }, }, } // Konfigurasikan aturan lifecycle untuk bucket. result, err := client.PutBucketLifecycle(context.TODO(), request) if err != nil { log.Fatalf("failed to put bucket lifecycle %v", err) } // Tampilkan hasilnya. log.Printf("put bucket lifecycle result:%#v\n", result) }
Gunakan antarmuka baris perintah ossutil
ossutil 2.0
Aktifkan pelacakan akses.
Konfigurasikan pelacakan akses dalam file lokal config1.xml.
<?xml version="1.0" encoding="UTF-8"?> <AccessMonitorConfiguration> <Status>Enabled</Status> </AccessMonitorConfiguration>Atur status pelacakan akses untuk bucket target.
ossutil api put-bucket-access-monitor --bucket bucketname --access-monitor-configuration file://config1.xml
Konfigurasikan aturan lifecycle berdasarkan waktu akses terakhir untuk awalan data/ dan awalan log/.
Konfigurasikan aturan lifecycle berikut dalam file lokal config2.xml.
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>rule1</ID> <Prefix>data/</Prefix> <Status>Enabled</Status> <Transition> <Days>200</Days> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </Rule> <Rule> <ID>rule2</ID> <Prefix>log/</Prefix> <Status>Enabled</Status> <Transition> <Days>120</Days> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> <Transition> <Days>250</Days> <StorageClass>Archive</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </Rule> </LifecycleConfiguration>Tetapkan aturan lifecycle untuk bucket target.
ossutil api put-bucket-lifecycle --bucket bucketname --lifecycle-configuration file://config2.xml
ossutil 1.0
Aktifkan pelacakan akses.
Konfigurasikan pelacakan akses dalam file lokal config1.xml.
<?xml version="1.0" encoding="UTF-8"?> <AccessMonitorConfiguration> <Status>Enabled</Status> </AccessMonitorConfiguration>Atur status pelacakan akses untuk bucket target.
ossutil access-monitor --method put oss://examplebucket/ config1.xml
Konfigurasikan aturan lifecycle berdasarkan waktu akses terakhir untuk awalan data/ dan awalan log/.
Konfigurasikan aturan lifecycle berikut dalam file lokal config2.xml.
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>rule1</ID> <Prefix>data/</Prefix> <Status>Enabled</Status> <Transition> <Days>200</Days> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </Rule> <Rule> <ID>rule2</ID> <Prefix>log/</Prefix> <Status>Enabled</Status> <Transition> <Days>120</Days> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> <Transition> <Days>250</Days> <StorageClass>Archive</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </Rule> </LifecycleConfiguration>Tetapkan aturan lifecycle untuk bucket target.
ossutil lifecycle --method put oss://examplebucket config2.xml
Gunakan REST API
Jika program Anda memiliki persyaratan kustomisasi tinggi, Anda dapat langsung membuat permintaan REST API. Untuk membuat permintaan REST API, Anda harus menulis kode secara manual untuk menghitung signature. Untuk informasi selengkapnya, lihat PutBucketAccessMonitor dan PutBucketLifecycle.