Yesterday I found some time to make an example of image push to the Cloud using Seafile storage. The idea is that instead of making a regular file upload that needs some kind of Backend gallery to preview the pictures, we can have a different take, like pushing the picture directly to your Cloud-storage.
WiFi Camera (C++) > API Endpoint (PHP) > Seafile cloud (Python/C)
So the first thing I tried is to browse the Seafile Web API manual and repeat in command line the curl commands. And then I found in packagist this great library that is a wrapper for all commands to implement them easily on your script.
For sure this would be also possible to do it without the middleware PHP, directly in C++ on the Espressif SoC, but I would like to have proper error handling and also to save a copy of the image in the case that the Cloud->push fails for any reason. It can be also a very complicated task considering they are at least 3 API calls using the bearer Auth token.
SeaUP
Short for Seafile upload this a code-example to make a PHP File upload using Seafile API and a simple JSON configuration
Repository lives here: https://github.com/martinberlin/seaup
Configuration is easy:
1– You need to obtain a Token
curl -d “username=username@example.com&password=123456” https://yourseafileserver.com/api2/auth-token
{“token”: “14fd3c026886e3121b2ca630805ed425c272Xxxx”}
2- Edit the sea-config.json and add it along with your seafile server and repository ID settings
{
"seafile_host": "https://storage.luckycloud.de",
"token": "14fd3c026886e3121b2ca630805ed425c272Xxxx",
"repository_id": "Is on the last part of Url when opening a library: #my-libs/lib/REPOSITORY_ID"
}
3- That’s it ! You are ready to open the test provided in the github repository and see if the image appears on the cloud