# 2021-05-20 AWS office hour 使用情境:利用API Gateway+lambda,抓取s3上的多個檔案,並壓縮成一個zip檔回傳 參考資料:[Set up API Gateway APIs to handle binary data using Lambda](https://aws.amazon.com/tw/premiumsupport/knowledge-center/api-gateway-binary-data-lambda/) 情境一: **Request Header沒有帶Accept** &rarr; 回傳Base64字串 ```bash= curl -LS -X POST -H 'Content-Type: application/json' -d '{"paths" : ["001.pdf"]}' https://8ykttfblod.execute-api.ap-northeast-1.amazonaws.com/uat -o download.zip ``` 情境二: <b>Request Header帶Accept: \*/* </b> &rarr; 回傳Base64字串 ```bash= curl -LS -X POST -H 'Accept: */*' -H 'Content-Type: application/json' -d '{"paths" : ["001.pdf"]}' https://8ykttfblod.execute-api.ap-northeast-1.amazonaws.com/uat -o download.zip ``` 情境三: <b>Request Header帶Accept: application/zip </b> &rarr; 回傳zip binary ```bash= curl -LS -X POST -H 'Accept: application/zip' -H 'Content-Type: application/json' -d '{"paths" : ["001.pdf"]}' https://8ykttfblod.execute-api.ap-northeast-1.amazonaws.com/uat -o download.zip ``` 疑問一: 因正常程式呼叫api不會特別帶Request Header: Accept,是否有更方便的作法可正確回傳binary檔案回來? 疑問二: Request Header: `Accept: */*`,已是確定接收所有類型格式的回傳值,為什麼沒辦法接收zip檔案? ![](https://i.imgur.com/qfLTlHv.png)