1

これが私がそれをどのように通すかです。

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()を実行する行まで機能し、それ以降は行を出力しません。誰かが理由を知っていますか?

ありがとう。

4

1 に答える 1

0

わかりました、それを解決しました。問題は、flaskのdefデーモン値がTrueであったことでした。それをfalseに変更し(私はdefだと思っていました)、今では動作します:)

于 2012-06-25T05:19:26.893 に答える