studio sqs hub cognito aws android amazon-web-services amazon-s3

android - sqs - Excepción de Amazon S3: "La clave especificada no existe"



upload file amazon s3 android (6)

Bueno, este error es bastante sencillo. simplemente significa que su archivo no existe dentro del depósito S3. Varias cosas podrían estar mal:

  1. Podría estar intentando hacer referencia al archivo incorrecto. Vuelva a verificar la ruta que intentó recuperar.

  2. Cada vez que se cargó el archivo, debe haber fallado. Verifique los registros de su proceso S3Sync para ver si puede encontrar alguna salida relevante

Source

Estoy usando AmazonS3Client en una aplicación de Android usando una solicitud getObject para descargar una imagen de mi bucket de Amazon S3.

Actualmente, recibo esta excepción:

com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey;

Aunque puedo ver el objeto con la clave especificada en mi depósito S3.


El motivo del problema es incorrecto o hay un error tipográfico en el nombre del Bucket / Key. Verifique si el cubo o el nombre clave que está proporcionando existe.


En mi caso, el error aparecía porque había cargado toda la carpeta, que contenía los archivos del sitio web, en el contenedor.

Lo resolví moviendo todos los archivos fuera de la carpeta, directamente al contenedor.


No olvide que los cubos son específicos de la región. Eso podría ser un problema.

También intente usar la consola S3 para navegar hasta el objeto real, y luego haga clic en Copy Path , obtendrá algo como:

s3://<bucket-name>/<path>/object.txt

Mientras lo que sea que esté pasando a analizarlo correctamente, creo que es lo más seguro.


Para mí, el objeto definitivamente existió y se cargó correctamente, sin embargo, su url s3 aún arrojó el mismo error:

<Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message>

Descubrí que la razón era porque mi nombre de archivo contenía un símbolo # , y supongo que ciertos caracteres o símbolos también causarán este error.

Eliminar este personaje y generar la nueva URL de s3 resolvió mi problema.


Tenga en cuenta que esto puede suceder incluso si la ruta del archivo es correcta debido al modelo de coherencia eventual de s3. Básicamente, puede haber algo de latencia en poder leer un objeto después de que está escrito. Vea esta documentación para más información.