We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

Mark L.45's avatar
Mark L.45
Collaborator | Level 9
2 months ago

Connecting a Seeed ESP32C3 to DropBox [Arduino]

I am trying to figure out how to upload a file on an ESP32C3 [which uses the Arduino IDE] to Dropbox.  I am using the generic HTTP API as a basis for doing so. I am effectively converting "curl" com...
  • Mark L.45's avatar
    Mark L.45
    2 months ago

    I figured out what I was doing wrong and posted the working code for the community's benefit.

     

    void uploadFile() {
      Serial.println("Running Upload_file: ");
      HTTPClient http;
    
      File file = SD.open("/240x320.jpg");
        if(!file) {
          Serial.println("Failed to open file for reading");
          return;
        }
    
        int len = file.size();
        char size[8];
        sprintf(size, "%d", len);
        
        static uint8_t buff2[27142] = {255};
        static unsigned char encoded[27142] = {255};
    
        int x = file.read(buff2,len);
        unsigned int base64_length = encode_base64(buff2, len + 1, encoded);
        close(file);
    
    
        Serial.print("Size ");
        Serial.println(size);
      
        if (http.begin(dropbox_uploadfile)) {  // HTTP
          String token_key = String("Bearer ") + dropbox_token;
          http.addHeader("Authorization", token_key);
          String args = "{\"autorename\":false,\"mode\":\"add\",\"mute\":false,\"path\":\"/Homework/math/Uploaded8.txt\",\"strict_conflict\":false}";
          http.addHeader("Dropbox-API-Arg",args);
          String arg2 = "application/octet-stream";
          http.addHeader("Content-Type",arg2);
          String wild = "The luck of the Irish";
          int httpCode = http.POST((char*)encoded); 
      
          String payload = http.getString();
          Serial.print("payload: ");
          Serial.println(payload);
      
          http.end();
      }
    }

     

    I posted an article on Medium with the download and list files commands, too, which you can find at this link. Yes, it's behind a paywall, but the first three articles are free.

     

    https://medium.com/me/stats/post/1f755145f504