Получить перенесенное имя файла в RabbitMQ используя python pika

Я использую pika в Python3 для отправки файлов CSV с одного узла на другой, и здесь все в порядке. Единственное, что мне нужно, - это получить переданное имя файла в принимающем узле (например, filename-2017-01-01.csv).

Есть ли способы сделать это?

Это часть обработки при получении файла.

def callback(ch, method, properties, body):
    ch.basic_ack(delivery_tag=method.delivery_tag)
    with open('test.csv', 'wb') as write_csv:
        write_csv.write(body)

2 ответа

Решение

Команда RabbitMQ контролирует rabbitmq-users список рассылки и только иногда отвечает на вопросы по Stackru.


Вместо того, чтобы сохранять имя файла вместе с сообщением, вы можете использовать этот метод для добавления пользовательского заголовка с именем файла.

Я придумал эту идею для тех, кто хочет включить имя файла в сообщение:

Я связал имя файла с сообщением. После отправки сообщения я разделил сообщение:

with open(file, 'rb') as csv_file:
    return file + csv_file.read().decode()

На другой стороне:

file_name = body.decode().split('.csv')[0]
message = body.decode().split('.csv')[1]
with open('{}.csv'.format(file_name), 'w') as write_csv:
    write_csv.write(message)
Другие вопросы по тегам