All Products
Search
Document Center

Object Storage Service:Kebijakan retensi tingkat objek (ObjectWorm)

Last Updated:May 07, 2026

Kebijakan retensi tingkat objek (ObjectWorm) menyediakan retensi kepatuhan WORM (Write Once, Read Many) pada tingkat objek. Berbeda dengan kebijakan retensi tingkat bucket (BucketWorm), yang menerapkan kebijakan seragam ke semua objek dalam suatu bucket, ObjectWorm memungkinkan Anda menetapkan mode retensi dan tanggal retensi unik untuk setiap objek. Kemampuan ini sangat ideal untuk memenuhi persyaratan penyimpanan kepatuhan granular di industri seperti keuangan dan kesehatan.

Penting

Fitur ini saat ini hanya tersedia berdasarkan undangan. Untuk meminta akses, hubungi technical support.

Ikhtisar

Setelah Anda mengaktifkan ObjectWorm untuk suatu bucket, Anda dapat secara otomatis menerapkan kebijakan retensi default ke objek baru atau menetapkan kebijakan retensi terpisah untuk objek yang sudah ada. Kebijakan tingkat objek memiliki prioritas lebih tinggi daripada kebijakan default bucket.

Saat ini, hanya mode compliance yang didukung. Dalam mode compliance, tidak ada pengguna, termasuk root user, yang dapat menghapus atau menimpa versi objek yang dilindungi selama periode retensinya. Tanggal retensi hanya dapat diperpanjang, tidak dipersingkat.

BucketWorm vs. ObjectWorm

Item

BucketWorm

ObjectWorm

Ruang lingkup perlindungan

Semua objek dalam bucket.

Objek individual.

Metode konfigurasi

Sakelar tingkat bucket yang diterapkan secara seragam ke semua objek (baik yang sudah ada maupun baru) dalam bucket.

Objek baru mewarisi kebijakan default, tetapi Anda dapat mengonfigurasi kebijakan terpisah dengan prioritas lebih tinggi untuk objek individual.

Waktu retensi

Periode relatif dalam hari, ditambahkan ke waktu modifikasi terakhir objek.

Tanggal retensi absolut, akurat hingga detik.

Saling eksklusif

BucketWorm dan ObjectWorm saling eksklusif.

Prasyarat

Aktifkan ObjectWorm dan konfigurasikan kebijakan retensi

Aktifkan kebijakan retensi tingkat objek pada bucket untuk mencegah objek tertentu dihapus atau ditimpa selama periode tertentu. Setelah fitur diaktifkan, Anda dapat mengonfigurasi kebijakan retensi terpisah untuk setiap objek baru atau yang sudah ada, sehingga memberikan fleksibilitas lebih besar.

Peringatan

Tindakan ini tidak dapat dibatalkan. Setelah Anda mengaktifkan ObjectWorm, Anda tidak dapat menonaktifkannya atau menonaktifkan pengendalian versi untuk bucket tersebut. Lanjutkan dengan hati-hati.

Konsol

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi sebelah kiri, klik Buckets, lalu klik nama bucket target.

  3. Di panel navigasi sebelah kiri, pilih Data Protection > Object-Level Retention Policy.

  4. Klik Enable.

  5. Dalam pengaturan kebijakan retensi default, konfigurasikan parameter berikut sesuai kebutuhan:

    • Not Set: Kebijakan retensi default tidak diterapkan. Objek yang diunggah ke bucket tidak dilindungi secara otomatis.

    • Compliance Mode: Dalam mode compliance, tidak ada pengguna, termasuk root user, yang dapat menghapus atau menimpa objek yang dilindungi selama periode retensi.

      • Retention Period: Masukkan durasi retensi dan pilih Days atau Year sebagai satuan.

  6. Klik Save, lalu masukkan pesan konfirmasi di kotak dialog untuk menyelesaikan proses.

ossutil

Aktifkan kebijakan retensi tingkat objek untuk bucket examplebucket dan konfigurasikan kebijakan retensi default dalam mode compliance selama 1 hari.

Menggunakan file konfigurasi XML bernama object-worm-configuration.xml dengan konten berikut:

<?xml version="1.0" encoding="UTF-8"?>
<ObjectWormConfiguration>
  <ObjectWormEnabled>Enabled</ObjectWormEnabled>
  <Rule>
    <DefaultRetention>
      <Mode>COMPLIANCE</Mode>
      <Days>1</Days>
    </DefaultRetention>
  </Rule>
</ObjectWormConfiguration>

Contoh perintah:

ossutil api put-bucket-object-worm-configuration --bucket examplebucket --object-worm-configuration file://object-worm-configuration.xml

SDK

Contoh kode berikut menunjukkan cara mengaktifkan ObjectWorm dan mengonfigurasi kebijakan retensi default menggunakan SDK.

Python

import argparse
import alibabacloud_oss_v2 as oss

parser = argparse.ArgumentParser(description="put bucket object worm configuration sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The OSS endpoint. If not specified, the SDK determines the endpoint based on the region.')
parser.add_argument('--mode', help='The retention mode. Valid values: GOVERNANCE, COMPLIANCE', default='GOVERNANCE')
parser.add_argument('--days', help='Object-level retention policy days (max 36500)', type=int)
parser.add_argument('--years', help='Bucket object level retention policy years (max 100)', type=int)


def main():

    args = parser.parse_args()

    # Loading credentials from the environment variables
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Using the SDK's default configuration
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    client = oss.Client(cfg)

    # Create a default retention rule
    default_retention = oss.ObjectWormConfigurationRuleDefaultRetention(
        mode=args.mode,
        days=args.days,
        # Specify either days or years, but not both.
        # years=args.years,
    )

    # Create the rule
    rule = oss.ObjectWormConfigurationRule(
        default_retention=default_retention,
    )

    # Create the WORM configuration
    config = oss.ObjectWormConfiguration(
        object_worm_enabled='Enabled',
        rule=rule,
    )

    result = client.put_bucket_object_worm_configuration(oss.PutBucketObjectWormConfigurationRequest(
        bucket=args.bucket,
        object_worm_configuration=config,
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
    )


if __name__ == "__main__":
    main()

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"
)

var (
	region     string
	bucketName string
)

func init() {
	flag.StringVar(&region, "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")
	}

	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	client := oss.NewClient(cfg)

	request := &oss.PutBucketObjectWormConfigurationRequest{
		Bucket: oss.Ptr(bucketName),
		ObjectWormConfiguration: &oss.ObjectWormConfiguration{
			ObjectWormEnabled: oss.Ptr("Enabled"),
			Rule: &oss.ObjectWormRule{
				DefaultRetention: &oss.ObjectWormDefaultRetention{
					Mode: oss.Ptr("COMPLIANCE"),
					Days: oss.Ptr(int32(1)),
				},
			},
		},
	}

	result, err := client.PutBucketObjectWormConfiguration(context.TODO(), request)
	if err != nil {
		log.Fatalf("Failed to put bucket Object WORM configuration: %v", err)
	}
	log.Printf("Put bucket Object WORM configuration result: %#v\n", result)
}

Java

import com.aliyun.sdk.service.oss2.OSSClient;
import com.aliyun.sdk.service.oss2.OSSClientBuilder;
import com.aliyun.sdk.service.oss2.credentials.CredentialsProvider;
import com.aliyun.sdk.service.oss2.credentials.EnvironmentVariableCredentialsProvider;
import com.aliyun.sdk.service.oss2.models.*;

public class PutBucketObjectWormConfigurationDemo {

    public static void main(String[] args) {

        CredentialsProvider provider = new EnvironmentVariableCredentialsProvider();
        OSSClient client = OSSClient.newBuilder()
                .credentialsProvider(provider)
                .region("cn-hangzhou")
                .build();

        try {
            ObjectWormConfigurationDefaultRetention defaultRetention = ObjectWormConfigurationDefaultRetention.newBuilder()
                    .mode("COMPLIANCE")
                    .days(1)
                    .build();

            ObjectWormConfigurationRule rule = ObjectWormConfigurationRule.newBuilder()
                    .defaultRetention(defaultRetention)
                    .build();

            ObjectWormConfiguration objectWormConfiguration = ObjectWormConfiguration.newBuilder()
                    .objectWormEnabled("Enabled")
                    .rule(rule)
                    .build();

            PutBucketObjectWormConfigurationRequest request = PutBucketObjectWormConfigurationRequest.newBuilder()
                    .bucket("examplebucket")
                    .objectWormConfiguration(objectWormConfiguration)
                    .build();

            PutBucketObjectWormConfigurationResult result = client.putBucketObjectWormConfiguration(request);

            System.out.printf("Status code:%d, request id:%s%n",
                    result.statusCode(), result.requestId());

        } catch (Exception e) {
            System.out.printf("error: %s%n", e);
        } finally {
            client.close();
        }
    }
}

API

Panggil operasi PutBucketObjectWormConfiguration untuk mengaktifkan ObjectWorm. Contoh badan permintaan berikut mengaktifkan ObjectWorm untuk bucket dan menetapkan kebijakan retensi default ke mode compliance dengan periode retensi 1 hari.

PUT /?objectWorm HTTP/1.1
Date: Thu, 17 Mar 2026 11:18:32 GMT
Content-Length: 188
Content-Type: application/xml
Content-MD5: B2M2Y8AsgTpgAmY7PhC****
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d****

<?xml version="1.0" encoding="UTF-8"?>
<ObjectWormConfiguration>
  <ObjectWormEnabled>Enabled</ObjectWormEnabled>
  <Rule>
    <DefaultRetention>
      <Mode>COMPLIANCE</Mode>
      <Days>1</Days>
    </DefaultRetention>
  </Rule>
</ObjectWormConfiguration>

Konfigurasikan kebijakan retensi objek

Konfigurasikan kebijakan retensi terpisah, termasuk mode retensi dan tanggal retensi, untuk versi objek tertentu. Kebijakan tingkat objek memiliki prioritas lebih tinggi daripada kebijakan retensi default bucket.

Konsol

Anda dapat mengonfigurasi kebijakan retensi untuk objek yang sudah ada dari daftar file atau halaman detail file.

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi sebelah kiri, klik Buckets, lalu klik nama bucket target.

  3. Di panel navigasi sebelah kiri, klik Object Management, lalu temukan objek target.

  4. Di sebelah kanan objek target, pilih More > Object-Level Retention Policy.

  5. Di panel pengaturan yang muncul, konfigurasikan Default Retention Mode dan Retention Period, lalu klik OK.

Catatan

Dalam mode compliance, Anda hanya dapat memperpanjang periode retensi untuk objek yang sudah memiliki kebijakan retensi. Anda tidak dapat mempersingkatnya.

ossutil

Konfigurasikan kebijakan retensi dalam mode compliance untuk objek exampleobject di bucket examplebucket, dengan tanggal retensi 2026-12-31T00:00:00.000Z.

Menggunakan file konfigurasi XML bernama retention.xml dengan konten berikut:

<?xml version="1.0" encoding="UTF-8"?>
<Retention>
  <Mode>COMPLIANCE</Mode>
  <RetainUntilDate>2026-12-31T00:00:00.000Z</RetainUntilDate>
</Retention>

Contoh perintah:

ossutil api put-object-retention --bucket examplebucket --key exampleobject --retention file://retention.xml

SDK

Contoh kode berikut menunjukkan cara mengonfigurasi kebijakan retensi untuk objek menggunakan SDK.

Python

import argparse
import alibabacloud_oss_v2 as oss
from datetime import datetime, timedelta, timezone

parser = argparse.ArgumentParser(description="put object retention sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The OSS endpoint. If not specified, the SDK determines the endpoint based on the region.')
parser.add_argument('--key', help='The object key.', required=True)

def main():

    args = parser.parse_args()

    # Loading credentials from the environment variables
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Using the SDK's default configuration
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    client = oss.Client(cfg)

    # Calculate retain until date (1 day from now) in ISO 8601 format
    # Use UTC time (recommended for OSS)
    retain_until_date = datetime.now(timezone.utc) + timedelta(days=1)
    retain_until_iso = retain_until_date.strftime('%Y-%m-%dT%H:%M:%S.000Z')


    # Create retention configuration
    retention_config = oss.Retention(
        mode=oss.ObjectRetentionModeType.COMPLIANCE,
        retain_until_date=retain_until_iso,
    )

    # Set object retention
    result = client.put_object_retention(oss.PutObjectRetentionRequest(
        bucket=args.bucket,
        key=args.key,
        retention=retention_config,
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id}')


if __name__ == "__main__":
    main()

Go

package main

import (
	"context"
	"flag"
	"log"
	"time"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

var (
	region     string
	bucketName string
	objectName string
)

func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
	flag.StringVar(&objectName, "object", "", "The name of the object.")
}

func main() {
	flag.Parse()
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, object name required")
	}
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)
	client := oss.NewClient(cfg)

	date := time.Now().UTC().Add(5 * time.Hour).Format("2006-01-02T15:04:05.000Z")
	putRequest := &oss.PutObjectRetentionRequest{
		Bucket: oss.Ptr(bucketName),
		Key:    oss.Ptr(objectName),
		Retention: &oss.ObjectWormRetention{
			Mode:            oss.Ptr("COMPLIANCE"),
			RetainUntilDate: oss.Ptr(date),
		},
	}
	putResult, err := client.PutObjectRetention(context.TODO(), putRequest)
	if err != nil {
		log.Fatalf("Failed to put object retention policy: %v", err)
	}
	log.Printf("Put object retention policy result: %#v\n", putResult)
}

Java

import com.aliyun.sdk.service.oss2.OSSClient;
import com.aliyun.sdk.service.oss2.OSSClientBuilder;
import com.aliyun.sdk.service.oss2.credentials.CredentialsProvider;
import com.aliyun.sdk.service.oss2.credentials.EnvironmentVariableCredentialsProvider;
import com.aliyun.sdk.service.oss2.models.*;

public class PutObjectRetentionDemo {

    public static void main(String[] args) {

        CredentialsProvider provider = new EnvironmentVariableCredentialsProvider();
        OSSClient client = OSSClient.newBuilder()
                .credentialsProvider(provider)
                .region("cn-hangzhou")
                .build();

        try {
            Retention retention = Retention.newBuilder()
                    .mode("COMPLIANCE")
                    .retainUntilDate("2026-12-31T00:00:00.000Z")
                    .build();

            PutObjectRetentionRequest request = PutObjectRetentionRequest.newBuilder()
                    .bucket("examplebucket")
                    .key("exampleobject")
                    .retention(retention)
                    .build();

            PutObjectRetentionResult result = client.putObjectRetention(request);

            System.out.printf("Status code:%d, request id:%s%n",
                    result.statusCode(), result.requestId());

        } catch (Exception e) {
            System.out.printf("error: %s%n", e);
        } finally {
            client.close();
        }
    }
}

API

Panggil operasi PutObjectRetention untuk mengonfigurasi kebijakan retensi untuk objek. Kode berikut menyediakan contoh permintaan.

PUT /exampleobject?retention&versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZj**** HTTP/1.1
Date: Thu, 17 Mar 2026 11:18:32 GMT
Content-MD5: B2M2Y8AsgTpgAmY7PhC****
Content-Type: application/xml
Content-Length: 162
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,Signature=****

<Retention>
  <Mode>COMPLIANCE</Mode>
  <RetainUntilDate>2026-10-11T00:00:00.000Z</RetainUntilDate>
</Retention>

Konfigurasikan retensi saat upload

Anda dapat mengonfigurasi kebijakan retensi langsung di header permintaan saat mengupload objek. Hal ini menghilangkan kebutuhan panggilan terpisah ke operasi PutObjectRetention. Ini didukung untuk operasi PutObject, CopyObject, dan InitiateMultipartUpload.

Konsol

  1. Masuk ke Konsol OSS dan buka halaman Object Management bucket target.

  2. Klik Upload Object.

  3. Di panel Upload, perluas Advanced Settings dan temukan pengaturan Default Retention Policy.

  4. Pilih {policyType}, konfigurasikan Retention Mode dan Retention Period, lalu upload file tersebut.

    Catatan

    Jika Anda memilih {policyType}, objek yang diupload secara otomatis mewarisi kebijakan retensi default bucket.

ossutil

Saat mengupload file menggunakan perintah API-level put-object dari ossutil, gunakan parameter --object-worm-mode dan --object-worm-retain-until-date untuk menentukan kebijakan retensi.

ossutil api put-object --bucket examplebucket --key exampleobject --body file://localfile.txt --object-worm-mode COMPLIANCE --object-worm-retain-until-date 2026-10-11T00:00:00.000Z

SDK

Contoh kode berikut menunjukkan cara mengonfigurasi kebijakan retensi saat memanggil operasi PutObject untuk mengupload objek.

import alibabacloud_oss_v2 as oss

credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = 'cn-hangzhou'
client = oss.Client(cfg)

# Upload the object and set a retention policy: compliance mode, retain until October 11, 2026.
result = client.put_object(oss.PutObjectRequest(
    bucket='examplebucket',
    key='exampleobject',
    body='Hello OSS',
    object_worm_mode='COMPLIANCE',
    object_worm_retain_until_date='2026-10-11T00:00:00.000Z',
))
print(f'status code: {result.status_code}')
import com.aliyun.sdk.service.oss2.OSSClient;
import com.aliyun.sdk.service.oss2.credentials.EnvironmentVariableCredentialsProvider;
import com.aliyun.sdk.service.oss2.models.*;
import com.aliyun.sdk.service.oss2.transport.BinaryData;

public class UploadWithRetention {
    public static void main(String[] args) {
        OSSClient client = OSSClient.newBuilder()
            .credentialsProvider(new EnvironmentVariableCredentialsProvider())
            .region("cn-hangzhou")
            .build();

        try {
            // Upload the object and set a retention policy: compliance mode, retain until October 11, 2026.
            PutObjectResult result = client.putObject(PutObjectRequest.newBuilder()
                .bucket("examplebucket")
                .key("exampleobject")
                .body(BinaryData.fromString("Hello OSS"))
                .header("x-oss-object-worm-mode", "COMPLIANCE")
                .header("x-oss-object-worm-retain-until-date", "2026-10-11T00:00:00.000Z")
                .build());

            System.out.printf("status code: %d%n", result.statusCode());
        } finally {
            client.close();
        }
    }
}
package main

import (
	"context"
	"fmt"
	"strings"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

func main() {
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion("cn-hangzhou")
	client := oss.NewClient(cfg)

	// Upload the object and set a retention policy: compliance mode, retain until October 11, 2026.
	request := &oss.PutObjectRequest{
		Bucket: oss.Ptr("examplebucket"),
		Key:    oss.Ptr("exampleobject"),
		Body:   strings.NewReader("Hello OSS"),
		RequestCommon: oss.RequestCommon{
			Headers: map[string]string{
				"x-oss-object-worm-mode":              "COMPLIANCE",
				"x-oss-object-worm-retain-until-date": "2026-10-11T00:00:00.000Z",
			},
		},
	}
	_, err := client.PutObject(context.TODO(), request)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("Object uploaded with retention successfully")
}

API

Panggil operasi PutObject untuk mengupload objek dan mengonfigurasi kebijakan retensinya di header permintaan.

PUT /exampleobject HTTP/1.1
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
x-oss-object-worm-mode: COMPLIANCE
x-oss-object-worm-retain-until-date: 2026-10-11T00:00:00.000Z
Content-MD5: B2M2Y8AsgTpgAmY7PhC****
Authorization: SignatureValue

[Object Content]

Catatan penggunaan

  • Batasan header: Saat ObjectWorm tidak diaktifkan untuk bucket, permintaan API tidak boleh berisi header berikut: x-oss-bypass-governance-retention atau x-amz-bypass-governance-retention.

  • Fitur tidak dapat dibatalkan: Setelah Anda mengaktifkan ObjectWorm untuk bucket, Anda tidak dapat menonaktifkannya. Evaluasi kebutuhan bisnis Anda dengan cermat sebelum mengaktifkan fitur ini.

  • Lingkup kebijakan default: Kebijakan retensi default hanya berlaku untuk objek baru yang diupload ke bucket, bukan untuk objek yang sudah ada. Untuk menetapkan kebijakan retensi untuk objek yang sudah ada, Anda harus memanggil operasi PutObjectRetention untuk mengonfigurasinya secara individual.

  • Prioritas kebijakan objek: Jika objek memiliki kebijakan retensinya sendiri, kebijakan tersebut memiliki prioritas lebih tinggi daripada kebijakan retensi default bucket.

  • Perpanjangan periode retensi: Dalam mode compliance, tanggal retensi yang sudah ada hanya dapat diperpanjang. Tidak dapat dipersingkat.

  • Penghapusan objek: Objek yang dilindungi tidak dapat dihapus selama periode retensinya.

  • Penanda hapus: ObjectWorm tidak melindungi delete markers, sehingga penanda tersebut dapat dibuat dan dihapus seperti biasa. Namun, Anda tidak dapat menghapus versi objek yang masih dalam periode retensinya.

  • Bagian: ObjectWorm tidak melindungi bagian (parts) yang dihasilkan dari unggah multi-bagian.

  • Replikasi data: Replikasi tidak menyalin pengaturan ObjectWorm objek. Objek tujuan mengikuti pengaturan ObjectWorm bucket tujuan, yang harus dikonfigurasi secara terpisah.

  • Manajemen siklus hidup: Saat ObjectWorm diaktifkan, aturan manajemen siklus hidup masih dapat memindahkan objek ke kelas penyimpanan lain. Namun, objek dalam periode retensinya tidak akan dihapus secara otomatis oleh aturan kedaluwarsa.

  • Pengiriman log: Hindari mengirimkan file log ke bucket yang telah mengaktifkan ObjectWorm. File log lama mungkin dikunci oleh kebijakan retensi dan tidak dapat dihapus secara otomatis, sehingga menyebabkan peningkatan biaya penyimpanan.

  • Append Object: Anda tidak dapat menggunakan operasi Append Object pada bucket dengan kebijakan retensi tingkat objek default karena operasi ini tidak mendukung pengaturan ObjectWorm.

  • ACL objek: Anda tidak dapat menetapkan ACL objek untuk objek yang sedang dalam periode retensi ObjectWorm-nya.