View a markdown version of this page

Template kunci keluaran S3 untuk pengiriman Amazon S3 - Amazon Kinesis Data Streams

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Template kunci keluaran S3 untuk pengiriman Amazon S3

Saat mengirimkan ke bucket Amazon S3 tujuan umum, Anda dapat mengonfigurasi template kunci keluaran S3 untuk mengontrol struktur kunci objek file yang dikirimkan. Template kunci bersifat opsional — jika tidak ditentukan, pengiriman Amazon S3 menggunakan template default.

Template default

Jika Anda tidak menentukan template kunci khusus, pengiriman Amazon S3 menggunakan default berikut:

kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}

Bagian sebelum garis miring terakhir (/) membentuk awalan kunci objek (struktur folder), dan segmen terakhir membentuk nama objek. Template default mengatur objek yang dikirim berdasarkan saluran dan jam, dan mengulangi nilai yang sama dalam nama objek sehingga setiap objek menggambarkan diri sendiri. Amazon Kinesis Data Streams secara otomatis menambahkan akhiran unik ke setiap kunci objek, sehingga kunci objek menjadi unik bahkan ketika template tidak menyertakan komponen waktu yang cukup baik untuk membedakannya.

Template variabel

Variabel berikut tersedia untuk digunakan dalam template kunci Anda:

Variabel templat kunci S3
Variabel Deskripsi Nilai contoh
!{channel-name} Nama pengiriman. my-channel
!{channel-id} Pengidentifikasi unik pengiriman. abc123def456
!{stream-name} Nama sumber aliran Kinesis Data Streams. my-stream
!{yyyy} Four-digit tahun (UTC). 2026
!{yy} Two-digit tahun (UTC). 26
!{MM} Two-digit bulan (UTC), tanpa empuk. 07
!{dd} Two-digit hari dalam sebulan (UTC), tanpa empuk. 20
!{HH} Two-digit jam (UTC, 24 jam), tanpa empuk. 14
!{mm} Two-digit menit (UTC), empuk nol. 30
!{extension} Ekstensi file yang berasal dari jenis kompresi yang dikonfigurasi (misalnya, .gz untuk GZIP atau .zst untuk ZSTD). Jika ada, itu harus muncul di akhir template. .gz
!{extension:.literal} Ekstensi file literal yang Anda tentukan. Harus dimulai dengan titik dan hanya berisi huruf kecil dan titik. Jika ada, itu harus muncul di akhir template. !{extension:.json}

Aturan template

Template kunci harus sesuai dengan aturan berikut:

  • Setelah semua variabel diperluas, kunci objek yang dihasilkan tidak boleh melebihi batas kunci objek Amazon S3 sebesar 1.024 karakter. Karena Amazon Kinesis Data Streams menambahkan akhiran unik hingga 38 karakter, template yang diperluas itu sendiri tidak boleh melebihi 986 karakter.

  • Tidak boleh berisi lintasan jalur: tidak ada periode berurutan (..), tidak ada segmen jalur khusus periode (.), dan tidak boleh dimulai dengan garis miring maju (). /

  • Tidak boleh mengandung garis miring berurutan (//).

  • Setiap placeholder variabel harus ditutup (masing-masing !{ harus memiliki pencocokan}) dan harus menggunakan nama variabel yang didukung.

  • Karakter literal yang diizinkan adalah karakter alfanumerik dan sebagai berikut:! - _ ' . * ( ) / =. =Karakter memungkinkan Anda mengekspresikan Hive-style partisi, sepertiyear=!{yyyy}/month=!{MM}/.

  • Template dapat berisi paling banyak satu placeholder ekstensi (!{extension}atau!{extension:.literal}), dan jika ada itu harus muncul di akhir template.

  • Ketika kompresi (GZIP atau ZSTD) diaktifkan, template harus menyertakan placeholder ekstensi.

catatan

Anda tidak perlu memasukkan variabel keunikan dalam template. Amazon Kinesis Data Streams secara otomatis menambahkan akhiran unik ke setiap kunci objek yang dikirimkan.

Contoh yang valid dan tidak valid

Contoh template utama
Templat Berlaku Alasan
!{channel-name}/!{yyyy}/!{MM}/!{dd}/!{HH}/records!{extension} Ya Menggunakan variabel yang didukung dan diakhiri dengan placeholder ekstensi tunggal.
data/stream=!{stream-name}/!{yyyy}-!{MM}-!{dd}/!{HH}!{mm}!{extension:.json} Ya Hive-style partisi dengan ekstensi literal di akhir.
!{channel-name}/!{channel-id} Ya Template minimal. Kinesis Data Streams menambahkan akhiran unik secara otomatis.
/data/!{channel-name}!{extension} Tidak Dimulai dengan garis miring ke depan.
data/../!{channel-name}!{extension} Tidak Berisi path traversal (..).
data//!{channel-name}!{extension} Tidak Berisi garis miring berurutan (//).
!{channel-name}!{extension}/!{yyyy} Tidak Placeholder ekstensi tidak ada di akhir template.
data/!{partition-id}!{extension} Tidak !{partition-id}bukan variabel yang didukung.
data/!{channel-name}(dengan kompresi GZIP atau ZSTD) Tidak Kompresi diaktifkan tetapi template tidak memiliki placeholder ekstensi.
data/!{channel-name}/!{yyyy}(penjepit penutupan hilang) Tidak Placeholder variabel yang tidak tertutup.