全部产品
Search
文档中心

Object Storage Service:Manajemen siklus hidup (PHP SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan PHP SDK V2 untuk mengelola fitur siklus hidup bucket.

Informasi latar belakang

Di OSS, tidak semua data yang diunggah memerlukan akses yang sering. Namun, karena kepatuhan data atau persyaratan arsip, beberapa data masih perlu disimpan dalam penyimpanan dingin. Berdasarkan kebutuhan bisnis Anda, Anda dapat memilih:

  1. Aturan Siklus Hidup Berdasarkan Waktu Modifikasi Terakhir: Ketika data tertentu tidak dimodifikasi untuk waktu yang lama dan tidak lagi perlu disimpan, Anda dapat menggunakan aturan ini untuk menghapusnya secara massal atau mengonversinya ke jenis penyimpanan dingin, sehingga membebaskan ruang penyimpanan.

  2. Aturan Siklus Hidup Berdasarkan Waktu Akses Terakhir: Jika Anda ingin OSS secara otomatis memantau pola akses data untuk mengidentifikasi data dingin dan secara dinamis mengonversi jenis penyimpanan, Anda dapat mengaktifkan aturan ini. OSS akan secara otomatis mengidentifikasi data yang tidak diakses untuk waktu yang lama dan mengonversinya ke penyimpanan dingin yang lebih ekonomis, mencapai pengelompokan panas dan dingin serta mengurangi biaya penyimpanan.

Pertimbangan

  • Sebelum mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir atau waktu akses terakhir, pastikan Anda memahami fitur ini. Untuk informasi lebih lanjut, lihat Aturan Siklus Hidup Berdasarkan Waktu Modifikasi Terakhir dan Aturan Siklus Hidup Berdasarkan Waktu Akses Terakhir.

  • Kode contoh dalam topik ini menggunakan ID Wilayah China (Hangzhou) cn-hangzhou dan titik akhir publiknya sebagai contoh. Jika Anda mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir OSS.

  • Untuk mengonfigurasi aturan siklus hidup, Anda harus memiliki izin oss:PutBucketLifecycle. Untuk melihat aturan siklus hidup, Anda harus memiliki izin oss:GetBucketLifecycle. Untuk menghapus aturan siklus hidup, Anda harus memiliki izin oss:DeleteBucketLifecycle. Untuk informasi lebih lanjut, lihat Berikan Izin Kustom kepada Pengguna RAM.

Konfigurasikan aturan siklus hidup

Kode berikut memberikan contoh aturan siklus hidup yang dikonfigurasi berdasarkan waktu modifikasi terakhir dan waktu akses terakhir data. Setelah konfigurasi selesai, jika Anda ingin memodifikasi satu atau lebih aturan siklus hidup, lihat Bagaimana Cara Memodifikasi Satu atau Lebih Konfigurasi Aturan Siklus Hidup?.

Konfigurasikan aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk mengubah kelas penyimpanan objek

Kode berikut memberikan contoh cara mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk mengubah kelas penyimpanan objek dalam bucket.

<?php

// Sertakan file autoload untuk memuat dependensi
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;

// Tentukan deskripsi untuk parameter baris perintah
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan
}, array_keys($optsdesc));

// Uraikan parameter baris perintah
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan hilang
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna tentang parameter yang diperlukan tetapi hilang
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah
$region = $options["region"]; // Wilayah tempat bucket berada
$bucket = $options["bucket"]; // Nama bucket

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir diberikan
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient
$client = new Oss\Client($cfg);

// Definisikan aturan siklus hidup untuk mengonversi objek yang namanya mengandung awalan log/ ke kelas penyimpanan IA setelah 30 hari
$lifecycleRule = new Oss\Models\LifecycleRule(
    prefix: 'log/', // Awalan objek
    transitions: array(
        new Oss\Models\LifecycleRuleTransition(
            days: 30, // Waktu konversi adalah 30 hari
            storageClass: 'IA' // Kelas penyimpanan target adalah IA
        )
    ),
    id: 'rule', // ID aturan
    status: 'Enabled' // Status aturan diaktifkan
);

// Buat objek konfigurasi siklus hidup dan tambahkan aturan siklus hidup
$lifecycleConfiguration = new LifecycleConfiguration(
    rules: array($lifecycleRule)
);

// Buat objek permintaan untuk menetapkan siklus hidup bucket dan masukkan konfigurasi siklus hidup
$request = new Oss\Models\PutBucketLifecycleRequest(
    bucket: $bucket,
    lifecycleConfiguration: $lifecycleConfiguration
);

// Panggil metode putBucketLifecycle untuk menetapkan aturan siklus hidup untuk bucket
$result = $client->putBucketLifecycle($request);

// Tampilkan hasil yang dikembalikan
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status respons HTTP
    'request id:' . $result->requestId . PHP_EOL // Pengenal unik permintaan
);

Konfigurasikan aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk mengonversi kelas penyimpanan objek, tidak termasuk objek yang namanya mengandung awalan tertentu atau memiliki tag tertentu

Kode berikut memberikan contoh cara menentukan bahwa objek dalam bucket, kecuali objek yang namanya mengandung awalan log, objek yang memiliki tag key1=value1, dan objek yang memenuhi persyaratan ukuran tertentu, dikonversi ke kelas penyimpanan IA 30 hari setelah modifikasi terakhir dan kedaluwarsa setelah 100 hari.

<?php

// Sertakan file autoload untuk memuat dependensi
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;

// Tentukan deskripsi untuk parameter baris perintah
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan
}, array_keys($optsdesc));

// Uraikan parameter baris perintah
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan hilang
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna tentang parameter yang diperlukan tetapi hilang
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah
$region = $options["region"]; // Wilayah tempat bucket berada
$bucket = $options["bucket"]; // Nama bucket

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir diberikan
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient
$client = new Oss\Client($cfg);

// Definisikan aturan siklus hidup untuk mengonversi objek yang namanya mengandung awalan log/ ke kelas penyimpanan IA setelah 30 hari
$lifecycleRule = new Oss\Models\LifecycleRule(
    id: 'rule', // ID aturan
    status: 'Enabled', // Status aturan diaktifkan
    prefix: 'logs', // Awalan objek
    transitions: array(
        new Oss\Models\LifecycleRuleTransition(
            days: 30, // Waktu konversi adalah 30 hari
            storageClass: 'IA', // Kelas penyimpanan target adalah IA
            isAccessTime: false // Atur ke false, berdasarkan kebijakan waktu modifikasi terakhir
        )
    ),
    filter: new Oss\Models\LifecycleRuleFilter( // Definisikan kondisi filter
        objectSizeGreaterThan: 500, // Atur lebih besar dari 500 byte
        objectSizeLessThan: 1000, // Atur kurang dari 1000 byte
        not: new Oss\Models\LifecycleRuleNot( // Definisikan kondisi pengecualian
            prefix: 'logs/log', // Kecualikan objek dengan awalan log
            tag: new Oss\Models\Tag( // Definisikan kondisi tag
                key: 'key1',
                value: 'value1'
            )
        )
    ),
    expiration: new Oss\Models\LifecycleRuleExpiration(
        days: 100 // Waktu kedaluwarsa adalah 100 hari
    )
);

// Buat objek konfigurasi siklus hidup dan tambahkan aturan siklus hidup
$lifecycleConfiguration = new LifecycleConfiguration(
    rules: array($lifecycleRule)
);

// Buat objek permintaan untuk menetapkan siklus hidup bucket dan masukkan konfigurasi siklus hidup
$request = new Oss\Models\PutBucketLifecycleRequest(
    bucket: $bucket,
    lifecycleConfiguration: $lifecycleConfiguration
);

// Panggil metode putBucketLifecycle untuk menetapkan aturan siklus hidup untuk bucket
$result = $client->putBucketLifecycle($request);

// Tampilkan hasil yang dikembalikan
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status respons HTTP
    'request id:' . $result->requestId . PHP_EOL // Pengenal unik permintaan
);

Konfigurasikan aturan siklus hidup berdasarkan waktu akses terakhir untuk mengubah kelas penyimpanan objek

Kode berikut memberikan contoh cara mengonfigurasi aturan siklus hidup berdasarkan waktu akses terakhir untuk mengubah kelas penyimpanan objek dalam bucket.

<?php

// Sertakan file autoload untuk memuat dependensi
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;
use AlibabaCloud\Oss\V2\Models\LifecycleConfiguration;

// Tentukan deskripsi untuk parameter baris perintah
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan
}, array_keys($optsdesc));

// Uraikan parameter baris perintah
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan hilang
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna tentang parameter yang diperlukan tetapi hilang
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah
$region = $options["region"]; // Wilayah tempat bucket berada
$bucket = $options["bucket"]; // Nama bucket

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir diberikan
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient
$client = new Oss\Client($cfg);

// Definisikan aturan siklus hidup untuk mengonversi objek yang namanya mengandung awalan log/ ke kelas penyimpanan IA setelah 30 hari
$lifecycleRule = new Oss\Models\LifecycleRule(
    prefix: 'log/', // Awalan objek
    transitions: array(
        new Oss\Models\LifecycleRuleTransition(
            days: 30, // Waktu konversi adalah 30 hari
            storageClass: 'IA', // Kelas penyimpanan target adalah IA
            IsAccessTime: 'true', // Apakah akan memicu konversi berdasarkan waktu akses
            ReturnToStdWhenVisit: 'false' // Tetap sebagai penyimpanan IA saat diakses kembali
        )
    ),
    id: 'rule', // ID aturan
    status: 'Enabled' // Status aturan diaktifkan
);

// Buat objek konfigurasi siklus hidup dan tambahkan aturan siklus hidup
$lifecycleConfiguration = new LifecycleConfiguration(
    rules: array($lifecycleRule)
);

// Buat objek permintaan untuk menetapkan siklus hidup bucket dan masukkan konfigurasi siklus hidup
$request = new Oss\Models\PutBucketLifecycleRequest(
    bucket: $bucket,
    lifecycleConfiguration: $lifecycleConfiguration
);

// Panggil metode putBucketLifecycle untuk menetapkan aturan siklus hidup untuk bucket
$result = $client->putBucketLifecycle($request);

// Tampilkan hasil yang dikembalikan
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status respons HTTP
    'request id:' . $result->requestId . PHP_EOL // Pengenal unik permintaan
);

Lihat aturan siklus hidup

Kode berikut memberikan contoh cara melihat informasi yang terkandung dalam aturan siklus hidup.

<?php

// Sertakan file autoload untuk memuat dependensi
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan
}, array_keys($optsdesc));

// Uraikan parameter baris perintah
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan hilang
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna tentang parameter yang diperlukan tetapi hilang
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah
$region = $options["region"]; // Wilayah tempat bucket berada
$bucket = $options["bucket"]; // Nama bucket

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir diberikan
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient
$client = new Oss\Client($cfg);

// Buat objek permintaan untuk mendapatkan siklus hidup bucket
$request = new Oss\Models\GetBucketLifecycleRequest(bucket: $bucket);

// Panggil metode getBucketLifecycle untuk mendapatkan aturan siklus hidup bucket
$result = $client->getBucketLifecycle($request);

// Tampilkan hasil yang dikembalikan
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status respons HTTP
    'request id:' . $result->requestId . PHP_EOL . // Pengenal unik permintaan
    'lifecycle:' . var_export($result->lifecycleConfiguration, true) . PHP_EOL // Isi aturan siklus hidup
);

Hapus aturan siklus hidup

Kode berikut memberikan contoh cara menghapus aturan siklus hidup yang dikonfigurasi untuk examplebucket. Jika Anda ingin menghapus satu atau lebih aturan siklus hidup, lihat Bagaimana Cara Menghapus Satu atau Lebih Aturan Siklus Hidup?.

<?php

// Sertakan file autoload untuk memuat dependensi
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan
}, array_keys($optsdesc));

// Uraikan parameter baris perintah
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan hilang
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna tentang parameter yang diperlukan tetapi hilang
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah
$region = $options["region"]; // Wilayah tempat bucket berada
$bucket = $options["bucket"]; // Nama bucket

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir diberikan
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient
$client = new Oss\Client($cfg);

// Buat objek permintaan untuk menghapus aturan siklus hidup bucket
$request = new Oss\Models\DeleteBucketLifecycleRequest(bucket: $bucket);

// Panggil metode deleteBucketLifecycle untuk menghapus aturan siklus hidup bucket
$result = $client->deleteBucketLifecycle($request);

// Tampilkan hasil yang dikembalikan
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status respons HTTP
    'request id:' . $result->requestId . PHP_EOL // Pengenal unik permintaan
);

Referensi

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengonfigurasi aturan siklus hidup, lihat PutBucketLifecycle.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk melihat aturan siklus hidup, lihat GetBucketLifecycle.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus aturan siklus hidup, lihat DeleteBucketLifecycle.