Come posso risolvere l'errore 404 "NoSuchKey" di Amazon S3?

3 minuti di lettura
0

I miei utenti stanno cercando di accedere agli oggetti nel mio bucket Amazon Simple Storage Service (Amazon S3). Tuttavia, Amazon S3 restituisce l'errore 404 "NoSuchKey". Come posso risolvere questo problema?

Risoluzione

Amazon S3 in genere restituisce errori 404 se l'oggetto richiesto non è presente nel bucket. Prima che gli utenti effettuino richieste GET o HEAD per un oggetto, assicurati che l'oggetto sia creato e disponibile nel bucket S3.

Per verificare se un oggetto è disponibile in un bucket, puoi esaminarne il contenuto dalla console Amazon S3. In alternativa, puoi eseguire il comando head-object utilizzando l'Interfaccia della linea di comando AWS (AWS CLI):

aws s3api head-object --bucket awsexamplebucket --key object.jpg

Importante: Se ricevi errori durante l'esecuzione dei comandi dell'AWS CLI,assicurati di utilizzare la versione più recente dell'AWS CLI.

Tieni presente che Amazon S3 offre una solida coerenza di lettura dopo scrittura per tutte le applicazioni. Dopo la scrittura di un nuovo oggetto oppure la sovrascrittura o l'eliminazione di un oggetto esistente eseguiti correttamente, qualsiasi richiesta di lettura successiva riceve immediatamente la versione più recente dell'oggetto. S3 offre una solida coerenza anche per le operazioni di elenco. Dopo una scrittura, puoi eseguire un elenco degli oggetti in un bucket. Per ulteriori informazioni sulla coerenza S3, consulta Consistency.

Se l'oggetto richiesto è disponibile nel bucket S3 da qualche tempo e ricevi nuovamente un errore 404 NoSuchKey, controlla quanto segue:

  • Verifica che la richiesta corrisponda esattamente al nome dell'oggetto, incluso l'uso delle maiuscole nel nome dell'oggetto. Le richieste di oggetti S3 fanno distinzione tra maiuscole e minuscole. Ad esempio, se un oggetto è denominato myimage.jpg, ma viene richiesto Myimage.jpg, il richiedente riceve un errore 404 NoSuchKey.
  • Verifica che il percorso richiesto corrisponda al percorso dell'oggetto. Altrimenti, il richiedente riceve un errore 404 NoSuchKey.
  • Se il percorso dell'oggetto contiene spazi, assicurati che la richiesta utilizzi la sintassi corretta per riconoscere il percorso. Ad esempio, se utilizzi l'interfaccia AWS CLI per scaricare un oggetto sul tuo computer Windows, devi inserire le virgolette attorno al percorso dell'oggetto. Il percorso dell'oggetto deve essere simile a questo: aws s3 cp "s3://awsexamplebucket/Backup Copy Job 4/3T000000.vbk".
  • Controlla il nome dell'oggetto per verificare la presenza di eventuali caratteri speciali o caratteri codificati in URL che sono difficili da vedere, ad esempio le restituzioni del carrello (\ r) o nuove linee (\n). Ad esempio, il test del nome dell'oggetto con restituzione del carrello alla fine viene visualizzato come test%0A nella console Amazon S3. Per controllare i nomi degli oggetti per i caratteri speciali, puoi eseguire il comando list-objects-v2 con il parametro --output json. L'output JSON rende visibili caratteri come return (\ r). Se il nome di un oggetto presenta un carattere speciale che non è sempre visibile, rimuovi il carattere dal nome dell'oggetto. Quindi, prova ad accedere nuovamente all'oggetto.
  • Puoi decidere se abilitare la registrazione degli accessi al server per esaminare i record delle richieste in modo più dettagliato con lo scopo di individuare eventuali problemi che potrebbero causare l'errore 404 NoSuchKey.

Nota: Se nel bucket manca un oggetto e il richiedente non dispone dell'accesso a s3:ListBucket, il richiedente riceverà un errore 403 Access Denied. Se ricevi un errore 403 Access Denied, risolvi il problema relativo all'oggetto mancante.


Informazioni correlate

Risoluzione dei problemi di Amazon S3

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa