¿Cómo puedo solucionar el error 404 «NoSuchKey» de Amazon S3?

3 minutos de lectura
0

Mis usuarios intentan acceder a los objetos de mi bucket de Amazon Simple Storage Service (Amazon S3). pero Amazon S3 devuelve el error 404 «NoSuchKey». ¿Cómo puedo solucionarlo?

Resolución

Amazon S3 suele devolver errores 404 si el bucket no contiene el objeto solicitado. Antes de que los usuarios realicen solicitudes GET o HEAD para un objeto, asegúrese de que el objeto esté creado y disponible en el bucket de S3.

Para comprobar si un objeto está disponible en un bucket, revise el contenido del bucket en cuestión desde la consola de Amazon S3. También puede ejecutar el comando head-object mediante la interfaz de línea de comandos de AWS (AWS CLI):

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

Importante: Si recibe errores al ejecutar los comandos de la AWS CLI, asegúrese de utilizar la versión más reciente de la AWS CLI.

Tenga en cuenta que Amazon S3 ofrece una sólida coherencia de lectura después de escritura para todas las aplicaciones. Tras escribir correctamente un objeto nuevo o al sustituir o eliminar un objeto existente, cualquier solicitud de lectura posterior recibe inmediatamente la versión más reciente del objeto. S3 también proporciona una gran coherencia para las operaciones de lista. Después de escribir, puede realizar una lista de los objetos en un bucket. Para obtener más información sobre la coherencia de S3, consulte Coherencia.

Si el objeto solicitado ha estado disponible en el bucket de S3 durante cierto tiempo y vuelve a aparecer el error 404 NoSuchKey, compruebe lo siguiente:

  • Confirme que la solicitud coincida exactamente con el nombre del objeto, incluido el uso de mayúsculas en el nombre del objeto. Las solicitudes de objetos de S3 distinguen entre mayúsculas y minúsculas. Por ejemplo, si un objeto se llama myimage.jpg, pero se solicita Myimage.jpg, el solicitante recibe un error 404 NoSuchKey.
  • Confirme que la ruta solicitada coincide con la ruta del objeto. De lo contrario, el solicitante recibirá un error 404 NoSuchKey.
  • Si la ruta del objeto contiene espacios, asegúrese de que la solicitud utilice la sintaxis correcta para reconocer la ruta. Por ejemplo, si utiliza la CLI de AWS para descargar un objeto a su equipo Windows, deberá utilizar comillas en la ruta del objeto. La ruta del objeto debe tener este aspecto: aws s3 cp «s3://awsexamplebucket/Backup Copy Job 4/3T000000.vbk».
  • Compruebe si el nombre del objeto contiene caracteres especiales o codificados en URL que sean difíciles de ver, como saltos de línea (\r) o líneas nuevas (\n). Por ejemplo, el nombre de objeto test con un salto de línea al final aparece como test%0A en la consola de Amazon S3. Para comprobar si hay caracteres especiales en los nombres de los objetos, ejecute el comando list-objects-v2 con el parámetro --output json. La salida JSON hace visibles caracteres como los saltos de línea (\r). Si el nombre de un objeto tiene un carácter especial que no siempre está visible, elimínelo del nombre del objeto. A continuación, vuelva a intentar acceder al objeto.
  • Si quiere, puede habilitar el registro de acceso al servidor para revisar los registros de solicitudes con más detalle y detectar problemas que puedan estar causando el error 404 NoSuchKey.

Nota: Si falta un objeto en el bucket y el solicitante no tiene acceso a s3:ListBucket, el solicitante recibirá un error 403 de acceso denegado. Si recibe un error 403 de acceso denegado, resuelva el problema relacionado con el objeto que falta.


Información relacionada

Solución de problemas de Amazon S3

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años