Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Lampiran: Tang SelectObjectContent gapan
Deskripsi
Operasi Amazon S3 Select menyaring konten objek Amazon S3 berdasarkan pernyataan bahasa kueri terstruktur (SQL) sederhana. Mengingat ukuran respons operasi ini tidak diketahui, Amazon S3 Select mengalirkan respons sebagai serangkaian pesan dan menyer Transfer-Encoding takan header dengan chunked nilainya dalam respons.
Untuk informasi selengkapnya tentang Amazon S3 Select, lihat Memilih Konten dari Objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Untuk informasi selengkapnya tentang menggunakan SQL dengan Amazon S3 Select, lihat Refer ensi SQL untuk Amazon S3 Select dan Amazon Glacier Select di Panduan Pengguna Amazon Simple Storage Service.
Respons
Operasi Select Amazon S3 yang berhasil mengembalikan kode 200 OK status.
Header Respons
Implementasi operasi ini hanya menggunakan header respons yang umum untuk sebagian besar respons. Untuk informasi selengkapnya, lihat Header Respons Umum.
Isi Respons
Karena ukuran respons Amazon S3 Select tidak diketahui, Amazon S3 mengalirkan respons sebagai serangkaian pesan dan menyer Transfer-Encoding takan header dengan chunked nilainya dalam respons. Contoh berikut menunjukkan format respons di tingkat atas:
<Message 1>
<Message 2>
<Message 3>
......
<Message n>
Setiap pesan terdiri dari dua bagian: pendahuluan dan data. Bagian pendahuluan terdiri dari 1) panjang byte total pesan, dan 2) panjang byte gabungan dari semua header. Bagian data terdiri dari 1) header, dan 2) muatan.
Setiap bagian diakhiri dengan checksum integer big-endian 4-byte (CRC). Amazon S3 Select menggunakan CRC32 (sering disebut sebagai GZIP CRC32) untuk menghitung kedua CRC. Untuk informasi selengkapnya tentang CRC32, lihat spesifikasi format file GZIP versi 4.3.
Total overhead pesan termasuk pendahuluan dan kedua checksum adalah 16 byte.
catatan
Semua integer nilai dalam pesan berada dalam urutan byte jaringan, atau urutan big-endian.
Diagram berikut menunjukkan komponen yang membentuk pesan dan header. Perhatikan bahwa ada beberapa header per pesan.
catatan
Untuk Amazon S3 Select, tipe nilai header selalu 7 (type=string). Untuk tipe ini, nilai header terdiri dari dua komponen, panjang bilangan bulat big-endian 2-byte, dan UTF-8 string yang memiliki panjang byte tersebut. Diagram berikut menunjukkan komponen yang membentuk header Amazon S3 Select.
Perhitungan panjang byte muatan (dua perhitungan ini setara):
-
payload_length = total_length - header_length - SizeOf (total_length) - SizeOf (header_length) - SizeOf (prelude_crc) - SizeOf (pesan_crc)
-
payload_length = total_length - header_length - 16
Setiap pesan berisi komponen-komponen berikut:
-
Pendahul uan: Selalu tetap ukuran 8 byte (dua bidang masing-masing 4 byte):
-
Empat byte pertama: Total panjang byte: panjang byte Big-endian integer dari seluruh pesan (termasuk bidang panjang total 4-byte itu sendiri).
-
Empat byte kedua: Header byte-length: Big-endian integer byte-length dari bagian header pesan (tidak termasuk bidang panjang header itu sendiri).
-
-
Prelude CRC: 4-byte big-endian integer checksum (CRC) untuk bagian awal pesan (tidak termasuk CRC itu sendiri). Pendahuluan memiliki CRC terpisah dari pesan CRC (lihat di bawah), untuk memastikan bahwa informasi panjang byte yang rusak dapat dideteksi segera, tanpa menyebabkan perilaku buffering patologis.
-
Header: Satu set metadata yang membuat anotasi pesan, seperti jenis pesan, format payload, dan sebagainya. Pesan dapat memiliki beberapa header, sehingga bagian pesan ini dapat memiliki panjang byte yang berbeda tergantung pada jenis pesan. Header adalah pasangan kunci-nilai, di mana kunci dan nilai adalah string. UTF-8 Header dapat muncul dalam urutan apa pun dalam bagian header pesan, dan setiap jenis header yang diberikan hanya dapat muncul sekali.
Untuk Amazon S3 Select, berikut adalah daftar nama header dan kumpulan nilai yang valid tergantung pada jenis pesan.
-
MessageType Header:
-
HeaderName => “:jenis pesan”
-
Val HeaderValues id => “kesalahan”, “acara”
-
-
EventType Header:
-
HeaderName => “:tipe-acara”
-
Val HeaderValues id => “Catatan”, “Konten”, “Kemajuan”, “Statistik”, “Akhir”
-
-
ErrorCode Header:
-
HeaderName => “:kode kesalahan”
-
Val HeaderValues id => Kode Kesalahan dari tabel di Daftar Kode Kesalahan Konten Objek SELECT bagian.
-
-
ErrorMessage Header:
-
HeaderName => “:pesan kesalahan”
-
Val HeaderValues id => Pesan kesalahan yang dikembalikan oleh layanan, untuk membantu mendiagnosis kesalahan tingkat permintaan.
-
-
-
Payload: Bisa apa saja.
-
Pesan CRC: 4-byte big-endian integer checksum (CRC) dari awal pesan hingga awal checksum (yaitu, semua yang ada di pesan tidak termasuk pesan CRC itu sendiri).
Setiap header berisi komponen-komponen berikut. Mungkin ada beberapa header per pesan.
-
Nama Header Byte-Length: Byte-length dari nama header.
-
Nama Header: Nama header, menunjukkan jenis header. Nilai yang valid: “:message-type” “:event-type” “:error-code” “:error-message”
-
Jenis Nilai Header: Enum menunjukkan jenis nilai header. Untuk Amazon S3 Select, ini selalu 7.
-
Nilai String Byte-Length: (Untuk Amazon S3 Select) Byte-length dari string nilai header.
-
String Nilai Header: (Untuk Amazon S3 Pilih) Nilai string header. Nilai yang valid untuk bidang ini bervariasi berdasarkan jenis header. Lihat bagian di bawah ini untuk nilai yang valid untuk setiap jenis header dan jenis pesan.
Untuk Amazon S3 Select, tanggapan dapat berupa pesan dari jenis berikut:
-
Pesan rek aman: Dapat berisi satu catatan, catatan paruh, atau beberapa catatan. Bergantung pada ukuran hasilnya, respons dapat berisi satu atau lebih pesan ini.
-
Pesan lanjutan: Amazon S3 secara berkala mengirimkan pesan ini untuk menjaga koneksi TCP tetap terbuka. Pesan-pesan ini muncul dalam tanggapan secara acak. Klien harus mendeteksi jenis pesan dan memproses yang sesuai.
-
Pesan kemajuan: Amazon S3 secara berkala mengirimkan pesan ini, jika diminta. Ini berisi informasi tentang kemajuan kueri yang telah dimulai tetapi belum selesai.
-
Pesan statistik: Amazon S3 mengirimkan pesan ini di akhir permintaan. Ini berisi statistik tentang kueri.
-
Pesan akhir: Menunjukkan bahwa permintaan selesai, dan tidak ada lagi pesan yang akan dikirim. Anda tidak boleh berasumsi bahwa permintaan selesai sampai klien menerima
Endpesan. -
RequestLevelError pesan: Amazon S3 mengirimkan pesan ini jika permintaan gagal karena alasan apa pun. Ini berisi kode kesalahan dan pesan kesalahan untuk kegagalan. Jika Amazon S3 mengirim
RequestLevelErrorpesan, itu tidak mengirimEndpesan.
Bagian berikut menjelaskan struktur setiap jenis pesan secara lebih rinci.
Untuk contoh kode dan pengujian unit yang menggunakan protokol ini, lihat AWS C Event Stream
Rekaman Pesan
Spesifikasi header
Pesan rekaman berisi tiga header, sebagai berikut:
Spesifikasi muatan
Payload pesan rekaman dapat berisi satu catatan, catatan parsional, atau beberapa catatan.
Pesan Kelanjutan
Spesifikasi header
Pesan lanjutan berisi dua header, sebagai berikut:
Spesifikasi muatan
Pesan lanjutan tidak memiliki muatan.
Pesan Kemajuan
Spesifikasi header
Pesan kemajuan berisi tiga header, sebagai berikut:
Spesifikasi muatan
Payload pesan kemajuan adalah dokumen XML yang berisi informasi tentang kemajuan permintaan.
-
BytesScanned=> Jumlah byte yang telah diproses sebelum dikompresi (jika file dikompresi).
-
BytesProcessed=> Jumlah byte yang telah diproses setelah tidak dikompresi (jika file dikompresi).
-
BytesReturned=> Jumlah byte data muatan rekaman saat ini yang dikembalikan oleh Amazon S3.
Untuk file yang tidak terkompresi, BytesScanned dan BytesProcessed sama.
Contoh:
<?xml version="1.0" encoding="UTF-8"?> <Progress> <BytesScanned>512</BytesScanned> <BytesProcessed>1024</BytesProcessed> <BytesReturned>1024</BytesReturned> </Progress>
Pesan Statistik
Spesifikasi header
Pesan statistik berisi tiga header, sebagai berikut:
Spesifikasi muatan
Payload pesan statistik adalah dokumen XML yang berisi informasi tentang statistik permintaan saat pemrosesan selesai.
-
BytesScanned=> Jumlah byte yang telah diproses sebelum dikompresi (jika file dikompresi).
-
BytesProcessed=> Jumlah byte yang telah diproses setelah tidak dikompresi (jika file dikompresi).
-
BytesReturned=> Jumlah total byte data muatan rekaman yang dikembalikan oleh Amazon S3.
Untuk file yang tidak terkompresi, BytesScanned dan BytesProcessed sama.
Contoh:
<?xml version="1.0" encoding="UTF-8"?> <Stats> <BytesScanned>512</BytesScanned> <BytesProcessed>1024</BytesProcessed> <BytesReturned>1024</BytesReturned> </Stats>
Pesan Akhir
Spesifikasi header
Pesan akhir berisi dua header, sebagai berikut:
Spesifikasi muatan
Pesan akhir tidak memiliki muatan.
Pesan Kesalahan Tingkat Permintaan
Spesifikasi header
Request-level pesan kesalahan berisi tiga header, sebagai berikut:
Untuk daftar kemungkinan kode kesalahan dan pesan kesalahan, lihatDaftar Kode Kesalahan Konten Objek SELECT.
Spesifikasi muatan
Request-level pesan kesalahan tidak memiliki payload.