У меня есть папка s3, которую я перемещаю в GCS. Я использую Airflow, чтобы заставить перемещения происходить.
В этой среде мой s3 является «постоянно растущей» папкой, то есть мы не удаляем файлы после того, как мы их получили.
def GetFiles(**kwargs):
foundfiles = False
s3 = S3Hook(aws_conn_id='S3_BDEX')
s3.get_conn()
bucket = s3.get_bucket(
bucket_name='/file.share.external.bdex.com/Offrs'
)
files = s3.list_prefixes(bucket_name='/file.share.external.bdex.com/Offrs')
print("BUCKET: {}".format(files))
check_for_file = BranchPythonOperator(
task_id='Check_FTP_and_Download',
provide_context=True,
python_callable=GetFiles,
dag=dag
)
Здесь мне нужен список файлов и их дата / время создания. Таким образом, я могу сравнить существующие файлы, чтобы определить, являются ли они новыми или нет.
Я знаю, что могу подключиться, потому что функция get_bucket
сработала. Однако в этом случае я получаю следующие ошибки:
Invalid bucket name "/file.share.external.bdex.com/Offrs": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
Спасибо