2015-12-18 10 views
11

Sto provando a inviare "mutlipart \ form-data" all'istanza EC2 tramite il gateway API AWS, ma non sono riuscito a trovare un modo per farlo. C'è un modo per pubblicare dati usando "application/x-www-form-urlencoded" e Mapping Tamplate per convertirlo in JSON, ma sto ancora postando un dato binario come se mancasse un file immagine. C'è qualcosa che mi manca?Inserimento di dati di modulo e dati binari tramite gateway API AWS

EDIT:

ho trovato un altro modo:

converto l'immagine a stringa base64 poi post-it come con il tipo di contenuto "/ x-www-form-urlencoded applicazione". In questo modo sto inviando l'intera immagine come stringa. Dopo aver ricevuto il messaggio, posso convertirlo nuovamente in immagine in PHP. L'unico lato negativo che ho trovato è che quando converto l'immagine in base64 le sue dimensioni diventano un po 'più grandi. Oltre a questo, non ho potuto trovare nessun altro aspetto negativo. Se puoi, per favore, puoi condividere con me?

+0

Si può provare a caricare i dati binari separatamente S3 tramite la tecnologia AJAX. Questo dovrebbe risolvere il tuo problema. – kixorz

+2

@kixorz, ci sono più motivi per cui le persone si attaccano al gateway API e non inviano i dati direttamente a S3. Nel mio caso, ho bisogno che l'API sia semplice e l'utente deve avere la chiave API per effettuare una chiamata a un endpoint. API Gateway lo semplifica per me. –

+0

Lo so, ma per il momento è necessario trovare una soluzione alternativa. S3 è una soluzione decente. – kixorz

risposta

13

Api Gateway team qui.

I dati binari non sono supportati al momento, ma sono nel nostro arretrato. Diversi clienti hanno richiesto questo.

Alcuni clienti hanno avuto successo utilizzando il base64 util nei modelli di mappatura che possono farlo funzionare per voi: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference

Diverso da quello che si dovrà attendere per il supporto ufficiale.

Modifica

Binary support is finally here!!