

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 API Gateway 主控台啟用二進位支援
<a name="api-gateway-payload-encodings-configure-with-console"></a>

本節說明如何使用 API Gateway 主控台來啟用二進位支援。舉例來說，我們使用與 Amazon S3 整合的 API。我們將重點放在設定支援的媒體類型，以及指定應該如何處理承載的作業上。如需如何建立與 Amazon S3 整合之 API 的詳細資訊，請參閱[教學：建立 REST API 做為 Amazon S3 代理](integrating-api-with-aws-services-s3.md)。

**使用 API Gateway 主控台啟用二進位支援**

1. 設定 API 的二進位媒體類型：

   1. 建立新的 API 或選擇現有的 API。在此範例中，我們將 API 命名為 `FileMan`。

   1. 在主導覽面板中所選取的 API 下，選擇 **API 設定**。

   1. 在 **API 設定**窗格的**二進位媒體類型**區段中，選擇**管理媒體類型**。

   1. 選擇**新增二進位媒體類型**。

   1. 在輸入文字欄位中，輸入必要的媒體類型，例如 **image/png**。如果需要，請重複此步驟來新增更多媒體類型。若要支援所有二進位媒體類型，請指定 `*/*`。

   1. 選擇**儲存變更**。

1. 設定如何處理 API 方法的訊息承載：

   1. 在 API 中建立新的資源或選擇現有的資源。在此範例中，我們使用 `/{folder}/{item}` 資源。

   1. 在資源上建立新的方法或選擇現有的方法。舉例來說，我們使用與 Amazon S3 中 `GET /{folder}/{item}` 動作整合的 `Object GET` 方法。

   1. 針對**內容處理**，選擇一個選項。

         
![\[在 API Gateway 主控台中設定 GET 方法。\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/binary-support-content-handling-on-method-new-console.png)

      如果您不想要在用戶端與後端接受相同的二進位格式時轉換本文，請選擇**傳遞**。例如，當後端需要二進位請求承載以 JSON 屬性傳入時，選擇**轉換為文字**，以將二進位本文轉換成 Base64 編碼字串。此外，當用戶端提交 Base64 編碼字串且後端需要原始二進位格式時，或是當端點傳回 Base64 編碼字串且用戶端只接受二進位輸出時，選擇**轉換為二進位**。

   1. 針對**請求內文傳遞**，選擇**未定義範本時 (建議)**以在請求內文上啟用傳遞行為。

      您也可以選擇**永不**。這意味著 API 將拒絕 content-types 沒有對應範本的資料。

   1. 在整合請求中保留傳入請求的 `Accept` 標頭。如果您將 `contentHandling` 設定為 `passthrough` 並想要在執行階段覆寫該設定，則應該這麼做。

         
![\[在整合請求中保留 Accept 標頭。\]](http://docs.aws.amazon.com/zh_tw/apigateway/latest/developerguide/images/binary-support-preserve-incoming-accept-header-new-console.png)

   1. 若要轉換成文字，請定義對應範本，將 Base64 編碼的二進位資料設為必要的格式。

      以下是要轉換為文字的對應範本範例：

      ```
      {
        "operation": "thumbnail",
        "base64Image": "$input.body"
      }
      ```

      此對應範本的格式取決於輸入的端點需求。

   1. 選擇**儲存**。