Загрузка файла S3 и героку python - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь записать файл в S3, используя метод s3.Object (), создав файл в каталоге / tmp /. Я развернул его на heroku, и он выдает ошибку приложения, в которой говорится, что истекло время ожидания Worker.

Ниже приведен мой исходный код:

def writeAckFile(dt,num1,num2):

    dt = dt.split('/')
    dt = dt[2] + dt[0] + dt[1]

    final_content = str('D|' +num1+ '|' + num2 + '|' + dt + '\n')

    op_file = open('/tmp/Ack.txt', 'w')
    if op_file.mode == 'w':
        op_file.write(final_content)
    op_file.close()
    s3 = boto3.resource('s3')
    s3.Object('S3_BUCKET', 'Ack1.txt').put(Body=open('/tmp/Ack.txt', 'rb'))

Есть ли более простой способ добиться того же? используя временные файлы?

1 Ответ

0 голосов
/ 07 января 2020

Можете ли вы подтвердить, создан ли этот ack.txt или нет.

Если он создан, вы можете использовать клиент вместо ресурса.

client_s3 = boto3.client('s3') client_s3.upload_file('/tmp/Ack.txt', bucket_name, 'Ack1.txt')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...