как отобразить список файлов в папке /tmp

#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. обновленный ответ, вы можете просмотреть этот список для файлов