Voici ma commande boto3 pour obtenir l'objet avec une clé spécifique à partir d'un compartiment S3:
resp = s3client.get_object(Bucket='<>-<>', Key='MzA1MjY1NzkzX2QudHh0')
Il donne l'erreur suivante:
botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.
J'ai vérifié dans le seau et la clé existe réellement
Ai-je raté quelque chose ou ai-je fait quelque chose de mal ici?
Vous avez un% 0A à la fin de votre URL; c'est un séparateur de ligne.
Puisque vous savez que la clé que vous avez se trouve définitivement dans le nom du fichier que vous recherchez, je vous recommande d'utiliser un filter
pour obtenir des objets avec des noms avec votre clé comme préfixe.
s3 = boto3.resource('s3')
bucket = s3.Bucket('cypher-secondarybucket')
for obj in bucket.objects.filter(Prefix='MzA1MjY1NzkzX2QudHh0'):
print obj.key
Lorsque vous exécutez ce code, vous obtiendrez les noms de clé de tous les fichiers qui commencent par votre clé. Cela vous aidera à savoir comment votre fichier s'appelle exactement sur S3.