

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

# Lampiran: Tang SelectObjectContent gapan
<a name="RESTSelectObjectAppendix"></a>

## Deskripsi
<a name="RESTSelectObjectAppendix-description"></a>

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 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/selecting-content-from-objects.html) 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 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference.html) di Panduan Pengguna * Amazon Simple Storage Service*.

## Respons
<a name="RESTSelectObjectAppendix-responses"></a>

Operasi Select Amazon S3 yang berhasil mengembalikan kode `200 OK` status.

### Header Respons
<a name="RESTSelectObjectAppendix-responses-response-headers"></a>

Implementasi operasi ini hanya menggunakan header respons yang umum untuk sebagian besar respons. Untuk informasi selengkapnya, lihat [ Header Respons Umum. ](RESTCommonResponseHeaders.md)

### Isi Respons
<a name="RESTSelectObjectAppendix-responses-response-elements"></a>

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. *](https://www.ietf.org/rfc/rfc1952.txt)

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.

![Contoh struktur pesan yang menunjukkan panjang byte total, panjang byte header, crc prelude, header, payload, dan pesan crc.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-frame-overview.png)


**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.

![Struktur header menunjukkan nama header byte panjang, string nama header, jenis nilai header, panjang byte nilai dan string nilai.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-headers-overview.png)


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](ErrorResponses.md#SelectObjectContentErrorCodeList) 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 `End` pesan.
+ **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 `RequestLevelError` pesan, itu tidak mengirim `End` pesan.

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 ](https://github.com/awslabs/aws-c-event-stream) di GitHub situs web.

#### Rekaman Pesan
<a name="s3select-frametype-record"></a>

##### Spesifikasi header
<a name="s3select-frametype-record-header"></a>

Pesan rekaman berisi tiga header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-record.png)


##### Spesifikasi muatan
<a name="s3select-frametype-record-payload"></a>

Payload pesan rekaman dapat berisi satu catatan, catatan parsional, atau beberapa catatan.

#### Pesan Kelanjutan
<a name="s3select-frametype-cont"></a>

##### Spesifikasi header
<a name="s3select-frametype-cont-header"></a>

Pesan lanjutan berisi dua header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-cont.png)


##### Spesifikasi muatan
<a name="s3select-frametype-cont-payload"></a>

Pesan lanjutan tidak memiliki muatan.

#### Pesan Kemajuan
<a name="s3select-frametype-progress"></a>

##### Spesifikasi header
<a name="s3select-frametype-progress-header"></a>

Pesan kemajuan berisi tiga header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-progress.png)


##### Spesifikasi muatan
<a name="s3select-frametype-progress-payload"></a>

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
<a name="s3select-frametype-stats"></a>

##### Spesifikasi header
<a name="s3select-frametype-stats-header"></a>

Pesan statistik berisi tiga header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-stats.png)


##### Spesifikasi muatan
<a name="s3select-frametype-stats-payload"></a>

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
<a name="s3select-frametype-end"></a>

##### Spesifikasi header
<a name="s3select-frametype-end-header"></a>

Pesan akhir berisi dua header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-end.png)


##### Spesifikasi muatan
<a name="s3select-frametype-end-payload"></a>

Pesan akhir tidak memiliki muatan.

#### Pesan Kesalahan Tingkat Permintaan
<a name="s3select-frametype-requestlevel-error"></a>

##### Spesifikasi header
<a name="s3select-frametype-requestlevel-error-header"></a>

Request-level pesan kesalahan berisi tiga header, sebagai berikut:

![Contoh struktur pesan termasuk header untuk jenis rekaman ini.](http://docs.aws.amazon.com/id_id/AmazonS3/latest/developerguide/images/s3select-frame-diagram-error.png)


Untuk daftar kemungkinan kode kesalahan dan pesan kesalahan, lihat[Daftar Kode Kesalahan Konten Objek SELECT](ErrorResponses.md#SelectObjectContentErrorCodeList).

##### Spesifikasi muatan
<a name="s3select-frametype-requestlevel-error-payload"></a>

Request-level pesan kesalahan tidak memiliki payload.

## Sumber Daya Terkait
<a name="RESTSelectObjectAppendix-responses-related-resources-post-res"></a>
+  [SelectObjectContent](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html) 
+  [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 
+  [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 
+  [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) 