#python #amazon-web-services #aws-lambda #filesystems #tmp
Вопрос:
Я использую функцию AWS lambda для загрузки файла в свою папку /tmp.
try: s3.download_file(source_bucket_name, i, f"/tmp/{original_zip_file_name}") except Exception as e: print('Unable to download S3 file', e) sys.exit(1)
Поведение немного противоречиво. Как я могу использовать Python, чтобы после этого перечислить файлы, присутствующие в моей папке tmp?
Редактировать:
Я имею в виду, как я могу перечислить содержимое tmp сразу после этого фрагмента кода в той же лямбда-функции (не после завершения лямбда-функции).
потому что позже я снова буду читать эти файлы из tmp
Ответ №1:
Как следует из названия (tmp), эта папка не является постоянной. Lambda работает в распределенной архитектуре, и данные/файлы, хранящиеся в папке /tmp, могут быть уничтожены после завершения выполнения функции lambda.
Лямбда не гарантирует, что вызов функции будет использован повторно, поэтому содержимое файла /tmp (вместе с памятью любых запущенных процессов) может исчезнуть в любое время.
Именно по этой причине вы получаете противоречивый результат, попробуйте другую файловую систему, такую как EFS или S3.
Если вы хотите проверить, существует ли файл в папке /tmp, вы можете использовать
import os os.path.isfile('/tmp/yourfilename') #Get list of files lst = os.listdir("/tmp")
Комментарии:
1. Я имею в виду, как я могу перечислить содержимое tmp сразу после этого фрагмента кода в той же лямбда-функции (не после завершения лямбда-функции). потому что позже я снова буду читать эти файлы из tmp
2. обновленный ответ, вы можете просмотреть этот список для файлов