[英]Facing issue with boto3 in uploading file to s3 bucket
我編寫了一個簡單的腳本,在其中將文件上傳到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,那么filename就會成為密鑰名稱並上傳到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上上傳。 如果有人對此有任何想法,請幫助。 您的幫助將不勝感激。
我將其放在函數和測試中。 例如:
def upload(file_name, bucket="my-bucket",key_name=None):
if not key_name:
key_name = file_name.split('/')[-1]
s3 = boto3.client("s3")
s3.upload_file(file_name, bucket, key_name)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.