Solace Community is getting a facelift!

On March 3rd we will be starting the process of migrating Solace Community to a new platform. As a result, Solace Community will go in to a temporary read-only state. You will still be able to come onto Solace Community and search through posts to find answers, but you won't be able to ask questions, post comments, or react in any way.

We hope to have the migration complete by Wednesday March 5th (or sooner), so please keep an eye out!

Simple file sender / receiver over Event Broker

Phil
Phil Member, Employee Posts: 10 Solace Employee

Simple cURL REST POST and python MQTT receiver to move a file across solace.

Curl Sender
1. Create directory with files for sending: 'sender'
2. Add password to 'restpass' variable

resthost=mr1nljqp0y2dox.messaging.solace.cloud
restport=9000
restuser=solace-cloud-client
restpass=password
filemask=./sender/*

for filepath  in $filemask
do
  # List all the files in subdirectory
  file=$(basename $filepath)

  curl -v -u $restuser:$restpass \
     -X POST http://$resthost:$restport/file/upload/binary/$file \
     -H "Solace-User-Property-File-Name: '"$file"'" \
     -H "Content-Type: application/octet-stream" \
     --data-binary @$filepath
done

Python MQTT Listener to file
1. Create directory 'receiver'
2. add password to username_pw_set

import paho.mqtt.client as mqtt
import os

def on_log(client, userdata, level, buf):
    print("log: ",buf)

# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    # Subscribing in on_connect() means that if we lose the connection and
    # reconnect then subscriptions will be renewed.
    client.subscribe("file/#")

# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    #print(msg.topic)
    #print("")
    filename="receiver/" + os.path.basename(msg.topic)
    print("Writing:"+filename)
    f=open(filename,"wb")
    f.write(msg.payload)
    f.close()

client = mqtt.Client()
client.on_log=on_log
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set(username="solace-cloud-client", password="password")
client.connect("mr1nljqp0y2dox.messaging.solace.cloud", 1883, 60)

# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
client.loop_forever()
Tagged:

Comments

This Month's Leaders

This Week's Leaders