Video: Words at War: The Veteran Comes Back / One Man Air Force / Journey Through Chaos 2024
Sarebbe bello se tutto funzionasse esattamente come pianificato quando si effettua la chiamata REST ad AWS. Tuttavia, possono verificarsi numerosi problemi che provocano un messaggio di errore simile a quello che vedi qui. Si noti che l'immagine non è completa. I valori chiave sono bloccati per mantenere l'usabilità delle chiavi di accesso.
I messaggi di errore possono assumere varie forme.Il problema può venire da varie fonti. La prima correzione è di codificare l'URL della firma per garantire che i caratteri speciali nella stringa dell'URL non confondano AWS. Uno strumento che è possibile utilizzare per risolvere questo problema è il decodificatore / codificatore URL. Per utilizzare questo strumento, è sufficiente incollare la firma (non l'intero URL) nel campo e fare clic su Codifica. La firma risultante non contiene caratteri speciali, ma utilizza la codifica URL per evitare problemi.
Anche se utilizzi i frammenti di codice forniti da Amazon, anche il processo di calcolo delle firme può andare storto. Guarda di nuovo la prima immagine, negli elementi
StringToSign
e
StringToSignBytes
. Questi elementi indicano ciò che AWS si aspettava quando ha controllato la firma. Naturalmente, non ti dà ancora un'idea del valore che dovresti avere fornito per una firma. Fortunatamente, Amazon Signature Tester può fornire queste informazioni.
Scarichi Amazon Signature Tester sul tuo disco rigido. Quello che ottieni è un file README e una pagina HTML che carichi nel tuo browser. L'immagine sotto mostra come appare la parte inferiore di questa pagina. Si desidera lavorare nella parte inferiore della pagina perché contiene due campi che è necessario fornire: il valore dell'elemento
StringToSignBytes
e la chiave segreta.
Quando si fa clic su Ottieni firma, viene visualizzato il valore dell'elemento
StringToSign
come lo vede AWS, la firma effettiva e la firma con codifica URL. Utilizzi la firma con codifica URL con la tua chiamata ad AWS. Per convalidare questa firma, è sufficiente sostituire il valore corrente nella stringa dell'URL con questo nuovo valore. Se il problema è nel codice della firma, la chiamata dovrebbe funzionare come previsto.
Il motivo per cui si desidera ricontrollare il valore dell'elemento
StringToSign
è che AWS potrebbe vederlo in modo diverso da quello che si fa. Ad esempio, notare che in questo caso ci sono tre caratteri di nuova riga tra
GET
e
Scade
valore di 1490652000. Se il codice di calcolo della firma non tiene conto di questo requisito, il la firma sarà sbagliata.Qui puoi trovare ulteriori strumenti per la risoluzione dei problemi.