Я пытаюсь записать файлы журнала Python непосредственно в S3 без предварительного сохранения их в стандартный вывод. Я хочу, чтобы файлы журнала автоматически записывались в S3 после завершения работы программы. Я хотел бы использовать метод boto3 put_object
:
import atexit
import logging
import boto3
def write_logs(body, bucket, key):
s3 = boto3.client("s3")
s3.put_object(Body=body, Bucket=bucket, Key=key)
log = logging.getLogger("some_log_name")
log.info("Hello S3")
atexit.register(write_logs, body=log, bucket="bucket_name", key="key_name")
quit()
Это выдает ошибку при загрузке на S3. Если я правильно помню, это требует, чтобы объект, загруженный на S3, был похож на байты. Я уточню вопрос с точной ошибкой, как только у меня будет время, чтобы воссоздать проблему.