Цель моего оператора - связаться с s3, а затем записать некоторые строковые данные в мое ведро s3.
Я увидел, что уже используется s3_hook.Я подумал, может быть, это лучший способ, чем использование boto3
Основная логика выглядит следующим образом:
from airflow.hooks.S3_hook import S3Hook
hook = S3Hook('test_s3')
log.info(hook.load_bytes('some_data', 'some_key', 'a_bucket'))
Тогда я получил ошибку вроде
У объекта 'S3Hook' нет атрибута 'load_bytes'
Я вполне уверен, что класс S3Hook имеет эту функцию (см. здесь ).
После этого я переключился на использование функции load_string
.Однако воздушный поток выдает мне ошибку типа:
У объекта 'S3' нет атрибута 'upload_fileobj'
Я использую воздушный поток с поддержкой s3.Не уверен, почему у меня ошибка выше.Мое соединение test_s3 в порядке, так как я проверил свое test_s3
соединение, используя read_key
для чтения некоторых текстовых файлов из s3 без каких-либо проблем.
У кого-нибудь еще есть подобная ситуация?Я очень смущен, где я скучал?Спасибо!