All Products
Search
Document Center

Object Storage Service:Cegah penimpaan file

Last Updated:Mar 21, 2026

Aturan pencegahan penimpaan melindungi file dalam bucket OSS agar tidak ditimpa setelah diunggah pertama kali. Aturan ini diterapkan berdasarkan path file, ekstensi file, dan identitas pengguna—sehingga Anda dapat menerapkan perlindungan terarah tanpa mengunci seluruh bucket.

Perilaku dan keterbatasan

Sebelum mengonfigurasi aturan, pahami apa yang dilindungi dan tidak dilindungi oleh fitur ini:

SkenarioPerilaku
Unggahan konkuren awalJika beberapa klien mengunggah file yang sama secara bersamaan untuk pertama kalinya, satu versi berhasil ditulis meskipun ada aturan yang sesuai. Setelah file tersebut ada, penimpaan berikutnya akan diblokir.
Operasi internal OSSTransisi lifecycle dan replikasi cross-region (CRR) tidak diblokir. Operasi yang diprakarsai sistem ini melewati aturan pencegahan penimpaan agar fitur inti tetap berfungsi.
Pengendalian versiAturan tidak berlaku saat Pengendalian versi bucket diaktifkan atau ditangguhkan.

Cara kerja

Saat OSS menerima permintaan menulis untuk file yang sudah ada, sistem mengevaluasi permintaan tersebut terhadap aturan yang telah dikonfigurasi sesuai urutan pembuatannya:

  1. Pencocokan path — memeriksa apakah path file sesuai dengan kondisi awalan dan akhiran aturan.

  2. Pencocokan identitas — memeriksa apakah pemohon sesuai dengan pengaturan Authorized User.

  3. Keputusan — jika semua kondisi terpenuhi, OSS memblokir operasi dan mengembalikan error FileAlreadyExists. Jika tidak ada aturan yang sesuai, penimpaan diizinkan.

Semua kondisi dalam suatu aturan harus terpenuhi secara bersamaan. Kecocokan sebagian tidak akan memicu aturan tersebut.

Lindungi jenis file tertentu

Lindungi file konfigurasi dan file log di folder produksi agar tidak ditimpa oleh pengguna tertentu.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Bucket OSS

  • Akses ke Konsol OSS dengan izin yang cukup untuk mengelola pengaturan bucket

Langkah-langkah

  1. Pada halaman Buckets, klik nama bucket target.

  2. Di panel navigasi kiri, pilih Data Management > File overwrite prohibited.

  3. Klik New rule added to prohibit overwrite writes dan konfigurasikan parameter berikut:

    ParameterDeskripsiContoh
    Rule IDOpsional. Biarkan kosong untuk menghasilkan UUID secara otomatis, atau masukkan ID unik.protect-configs-json
    File name prefixPath folder yang ingin dilindungi.production/configs/
    File name extensionEkstensi file yang ingin dilindungi. Biarkan kosong untuk melindungi semua jenis file di path tersebut..json
    Authorized UserPengguna RAM, Peran RAM, atau akun lain yang dibatasi oleh aturan ini. Gunakan * untuk membatasi semua pengguna.ARN Pengguna RAM
  4. Klik OK.

Verifikasi aturan

  1. Gunakan akun yang dibatasi untuk mengunggah file dengan nama yang sama ke production/configs/app.json.

  2. Konfirmasi bahwa error FileAlreadyExists dikembalikan.

  3. Konfirmasi bahwa pengguna lain tetap dapat mengunggah file secara normal dan unggahan ke path di luar kondisi awalan dan akhiran berhasil seperti biasa.

Tetapkan kebijakan perlindungan global

Lindungi semua file di path kritis agar tidak ditimpa oleh pengguna mana pun.

Langkah-langkah

  1. Pada halaman Buckets, klik nama bucket target.

  2. Di panel navigasi kiri, pilih Data Management > File overwrite prohibited.

  3. Klik New rule added to prohibit overwrite writes dan konfigurasikan parameter berikut:

    ParameterNilai
    Rule IDOpsional. Biarkan kosong untuk menghasilkan secara otomatis.
    File name prefixcritical-data/
    File name extensionBiarkan kosong untuk melindungi semua jenis file.
    Authorized User* (semua akun)
  4. Klik OK.

Verifikasi aturan

  1. Gunakan akun apa pun untuk mencoba menimpa critical-data/database.sql.

  2. Konfirmasi bahwa error FileAlreadyExists dikembalikan.

  3. Konfirmasi bahwa file di public-data/ masih dapat ditimpa secara normal.

Aturan pencocokan

RuleDetail
Jumlah maksimum aturan per bucket100
Panjang maksimum awalan dan akhiranMasing-masing 1.023 karakter
Jenis pencocokanHanya pencocokan string eksak. Ekspresi reguler dan karakter wildcard tidak didukung untuk bidang awalan dan akhiran.
Pencocokan awalanlogs/ sesuai dengan logs/app.log tetapi tidak dengan dev-logs/app.log.
Pencocokan akhiran.txt sesuai dengan readme.txt tetapi tidak dengan readme.TXT atau readme.txt.bak.
Authorized UserMendukung wildcard *. Untuk detailnya, lihat konfigurasi Principal dalam Contoh umum kebijakan bucket.
Rule IDOpsional. Menghasilkan identifier unik universal (UUID) secara otomatis jika dibiarkan kosong. Harus unik dalam bucket tersebut.

FAQ

Saya membiarkan kolom Authorized Users kosong, dan sekarang bahkan saya sendiri tidak bisa menimpa file. Bagaimana cara memulihkan akses?

Membiarkan kolom Authorized Users kosong menerapkan aturan tersebut ke semua pengguna, termasuk pemilik bucket dan Akun Alibaba Cloud root. Untuk memulihkan akses penimpaan, lakukan salah satu langkah berikut:

  • Hapus aturan tersebut di Konsol.

  • Persempit cakupan dengan menetapkan awalan atau akhiran yang lebih spesifik.

  • Tetapkan Authorized User ke pengguna tertentu agar pembatasan hanya berlaku untuk mereka.

Saya mengatur awalan menjadi logs/*.txt untuk mencocokkan semua file .txt di folder logs, tetapi tidak berfungsi. Mengapa?

Pencocokan awalan OSS memperlakukan * sebagai karakter literal, bukan sebagai wildcard. Sistem mencari file dengan nama persis logs/*.txt. Untuk mencocokkan semua file .txt di folder logs/, konfigurasikan aturan dengan:

  • File name prefix: logs/

  • File name extension: .txt

Apa yang terjadi jika saya membiarkan awalan dan akhiran kosong?

Aturan tersebut berlaku untuk seluruh bucket. Jika dikombinasikan dengan kolom Authorized Users yang kosong, semua pengguna—termasuk pemilik bucket—diblokir dari menimpa file apa pun. Jika Authorized Users menentukan pengguna tertentu, hanya pengguna tersebut yang dibatasi.