Я сделал простой скрипт, в котором я загружаю файл в корзину s3.
И мой код выглядит следующим образом.
bucket = "my-bucket"
file_name = "/my-file-path/download.jpeg"
key_name = None
s3 = boto3.client("s3")
if key_name is None:
key_name = file_name.split('/')[-1]
s3.upload_file(file_name, bucket, key_name)
Итак, я хочу добиться, чтобы кто-нибудь не передавал имя ключа или имя ключа None, тогда имя файла становится именем ключа и загружается в корзину s3.
Приведенный выше код работает нормально, если я передаю имя ключа, но когда я передаю None в имени ключа, он не будет работать, и я отлаживаю свой код, и я нашел это
-> key_name = file_name.split('/')[-1]
(Pdb) key_name
'download.jpeg'
(Pdb) next
--Call--
> /usr/lib/python3.6/threading.py(1279)_shutdown()
-> def _shutdown():
(Pdb)
> /usr/lib/python3.6/threading.py(1285)_shutdown()
-> tlock = _main_thread._tstate_lock
И в конце файл не загрузится на s3. Если у кого-то есть идеи по этому поводу, пожалуйста, помогите. Ваша помощь будет оценена наверняка.