- Newest
- Most votes
- Most comments
Hi,
You can't find the "Settings" option because you are creating an HTTP API instead of a REST API and the UI is different for each of them.
In your first screenshot, you need to click on the hyperlink of the API, and you will see the settings on the left pane, see sample below
Thanks, that looks like exactly what I need.
However clicking the hyperlink of the API in the first image leads to the screen in the second image, which doesn't have the same left pane as you've got here, and the "API: api.nocodebots.... (iw4wquo5di)" link in orange is not clickable. The cursor changes to a hand if I hover over it but clicking does nothing, and right-clicking and "open in new tab" just leads to the first screen.
Chrome and Safari both have the same issue.
Could it be a different "kind" of API or something? More explicitly, my API is a Lambda custom integration that allows a client to interact via HTTP with a particular lambda via a custom domain. So this is an "inbound" call. Do I need some a second (different kind) of API to allow the lambda to post binary data to S3?
David
Ahh thanks! That's what I was wondering when I said "... a different kind) of API ..." and you've explained it perfectly. Even though it was a somewhat stupid question n the first place I'll leave this all here in case it helps anyone with the same problem in the future.
It finally all makes sense.
David
OK, thinking more about this, I'm not convinced that this is the problem anyway :)
The uploaded files are being received correctly by the lambda, and match byte-for-byte.
The problem is that the file **that the lambda sends to S3 is not the same **- it's much larger, as if a text encoding is being used, e.g. test.txt is 1205768 bytes on my laptop and 1205768 bytes are received by the lambda. However the test.txt file on the S3 bucket is 1904837 bytes long, and the difference appears to be that it's got many non-breaking spaces in it. Similarly mp3/mp4/xls files are all reported as corrupt when I try to open the S3 versions.
So the problem is NOT my client -> API Gateway -> lambda process, that's all fine. It's the lambda -> S3 leg that's screwing up. I'm not sure where to go from here.
EDIT: the problem was my code. I was streaming the received content converted using:
let content = Buffer.from(recvd_content, 'base64').toString('binary');
instead of the raw base64 encoded content.
I still don't knw where the API "Settings" are :D
David
Relevant content
- Accepted Answerasked a year ago
- asked 2 years ago
- asked a month ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated a year ago