无法通过python线程上传到Amazon S3
我是这样穿的无法通过python线程上传到Amazon S3,python,multithreading,Python,Multithreading,我是这样穿的 t = Thread(target=s3_upload, args=(absolute_write_path,raw_unique_key)) t.start() 这是在线程中调用的函数 def s3_upload(file_path,key): conn = S3.AWSAuthConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) #check if bucket exists, if not cr8 it
t = Thread(target=s3_upload, args=(absolute_write_path,raw_unique_key))
t.start()
这是在线程中调用的函数
def s3_upload(file_path,key):
conn = S3.AWSAuthConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
#check if bucket exists, if not cr8 it
if S3_BUCKET_CHECK:
if not conn.check_bucket_exists(S3_BUCKET_NAME).status == 200:
conn.create_located_bucket(S3_BUCKET_NAME, S3_LOCATION)
orig_file = open(file_path, "r")
obj = S3Object(orig_file.read())
conn.put(S3_BUCKET_NAME, key, obj)
os.remove(file_path)
如果我不在线程中运行它,它似乎可以工作。但如果我在线程中运行,它会一直运行到我执行conn.put()的行,并且它不会从那里开始打印行。有人知道为什么吗
谢谢。好的,解决了。问题是flask的def守护进程值为True。将其更改为false(我假设是def),现在它可以工作:)为什么不检查返回值?确定解决了它。问题是flask的def守护进程值为True。将其更改为false(我假设是def),现在它可以工作了:)