[PYTHON] Points addictifs lors du téléchargement de fichiers à l'aide de boto sur AWS Lambda

Le problème qu'une chaîne de caractères mystérieuse survient

de cette façon

s3 = boto3.client("s3")
pdf_filepath = 'tmp/' + key.split('/')[-1]
print(pdf_filepath)
# => tmp/20191016101246759.pdf
s3.download_file(bucket, key, pdf_filepath)

Si vous exécutez le code qui télécharge le fichier depuis S3 [ERROR] FileNotFoundError: [Errno 2] No such file r directory: 'tmp/20191016101246759.pdf.47cf5CFA' Une chaîne de caractères mystérieuse est jointe comme celle-ci et je ne peux pas la télécharger en raison d'une erreur.

Limites des fichiers pouvant être modifiés dans Lambda

Chez Lambda -Seuls les fichiers sous / tmp peuvent être modifiés </ b>

  • Vous ne pouvez pas créer de structure hiérarchique sous / tmp (vous ne pouvez pas créer de répertoire sous / tmp) </ b>

Il y a une limitation. Par conséquent, si vous essayez de télécharger vers un emplacement autre que / tmp, ou si vous essayez de télécharger en le divisant en répertoires tels que / tmp / food / chocolate.jpg, une erreur se produira.

Solution

Dans ce cas, j'essaye d'enregistrer dans tmp /

s3 = boto3.client("s3")
pdf_filepath = '/tmp/' + key.split('/')[-1]
print(pdf_filepath)
# => /tmp/20191016101246759.pdf
s3.download_file(bucket, key, pdf_filepath)

J'ai pu le télécharger en toute sécurité en le spécifiant directement sous / tmp.

Recommended Posts