461bf6fd40
CI / lint (3.11) (push) Blocked by required conditions
CI / lint (3.12) (push) Blocked by required conditions
CI / lint (3.13) (push) Blocked by required conditions
CI / shellcheck (push) Waiting to run
CI / shfmt (push) Waiting to run
CI / setup (3.11) (push) Waiting to run
CI / setup (3.12) (push) Waiting to run
CI / setup (3.13) (push) Waiting to run
CI / check-licenses (3.12) (push) Blocked by required conditions
CI / test_unit (3.11) (push) Blocked by required conditions
CI / test_unit (3.12) (push) Blocked by required conditions
CI / test_unit (3.13) (push) Blocked by required conditions
CI / test_unit_no_extras (3.11) (push) Blocked by required conditions
CI / test_unit_no_extras (3.12) (push) Blocked by required conditions
CI / test_json_to_html (3.12) (push) Blocked by required conditions
CI / test_unit_no_extras (3.13) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.11, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.12, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.13, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.11, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.12, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.13, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.11, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.12, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.13, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.11, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.12, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.12, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.13, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.13, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.13, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.11, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.11, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.12, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.11, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.12, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.13, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.11, --extra xlsx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.12, --extra xlsx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.13, --extra xlsx) (push) Blocked by required conditions
CI / test_ingest_src (3.12) (push) Blocked by required conditions
CI / test_json_to_markdown (3.12) (push) Blocked by required conditions
CI / changelog (push) Waiting to run
CI / test_dockerfile (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Build And Push Docker Image / set-short-sha (push) Waiting to run
Build And Push Docker Image / build-images (linux/amd64, opensource-linux-8core) (push) Blocked by required conditions
Build And Push Docker Image / build-images (linux/arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build And Push Docker Image / publish-images (push) Blocked by required conditions
Partition Benchmark / setup (push) Waiting to run
Partition Benchmark / Measure and compare partition() runtime (push) Blocked by required conditions
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
import base64
|
|
import json
|
|
import socket
|
|
|
|
import click
|
|
from confluent_kafka import Producer
|
|
|
|
|
|
@click.group(name="kafka-ingest")
|
|
def cli():
|
|
pass
|
|
|
|
|
|
@cli.command()
|
|
@click.option("--input-file", type=str, required=True)
|
|
@click.option("--bootstrap-server", type=str, required=True)
|
|
@click.option("--topic", type=str, required=True)
|
|
@click.option("--api-key", type=str, required=False)
|
|
@click.option("--secret", type=str, required=False)
|
|
@click.option("--confluent", type=bool, required=False, default=True)
|
|
@click.option("--port", type=int, required=False, default=9092)
|
|
def up(
|
|
input_file: str,
|
|
bootstrap_server: str,
|
|
topic: str,
|
|
api_key: str,
|
|
secret: str,
|
|
confluent: bool,
|
|
port: int,
|
|
):
|
|
conf = {
|
|
"bootstrap.servers": f"{bootstrap_server}:{port}",
|
|
"client.id": socket.gethostname(),
|
|
"message.max.bytes": 10485760,
|
|
}
|
|
|
|
print(f"Confluent setting: {confluent}")
|
|
if confluent:
|
|
conf["security.protocol"] = "SASL_SSL"
|
|
conf["sasl.mechanism"] = "PLAIN"
|
|
conf["sasl.username"] = api_key
|
|
conf["sasl.password"] = secret
|
|
|
|
producer = Producer(conf)
|
|
|
|
# Read the file in binary mode and encode content in base64
|
|
with open(input_file, "rb") as file:
|
|
file_content = base64.b64encode(file.read()).decode("utf-8")
|
|
|
|
print(f"Message is {len(file_content)} bytes long")
|
|
# Construct the message with filename and file content
|
|
message = json.dumps({"filename": input_file.split("/")[-1], "content": file_content}).encode(
|
|
"utf-8"
|
|
)
|
|
|
|
# Send the message to Kafka
|
|
producer.produce(topic, message)
|
|
producer.flush()
|
|
print(f"File and filename sent to Kafka topic {topic} successfully.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
cli()
|