Rare/Intermittent bulk data?

We have a device that lives on a proprietary CANbus and does data gathering and some translation. The data gathering is just a few datapoints every 15 minutes and works well within Particle's design.

The problem I'm having is for debugging/troubleshooting work customer service would like the ability to grab a capture of the CANbus traffic for a short period of time (maybe a minute) when triggered. I can do this, but how do I get the data to my platform? Sending potentially dozens of data requests is a hassle, and pretty slow. I tried MQTT to go around the cloud for just these requests, but it never really worked.

Does anyone have any idea how to either push a bulk file to the cloud, or pull into the cloud a file or large data structure from a device?

Thank you
Mark

For infrequent bulk data, it mostly depends on the size and a few other factors.

If the data is less than 16K of binary data, in Device OS 6.3.0 and later, extended publish allows you to send much more data. You still need a service to catch the data from the event.

Alternatively, you could use Ledger to store up to 16K of data. The advantage of this is that the data will be stored per-device, so you can download it later.

If the data is larger than that, but less than 1 Mbyte (Base 85 encoded), you can use a combination of events, logic, and ledger. See this example.

If the data is even larger, you'll need your own service. You'll probably want a server to capture the data, and use TCP to upload data to it. This is essentially unlimited, but it could cause you to exceed the cellular data limit. There is no limit for using TCP over Wi-Fi.

There are also some other options that don't use the cellular network, like offloading the data using BLE or USB serial.