This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BOOSTXL-CC3135: HTTPS Client : PUT chunked data on AWS S3 using canonical requests

Part Number: BOOSTXL-CC3135
Other Parts Discussed in Thread: CC3135

Hello TI,

I am using the BOOSTXL-CC3135 WIFI module interfaced with an STM32L4 over SPI Bus, which running on FreeRTOS.

I could successfully run the HTTP client v1.X provided by the TI Ntework service:
+ Connection to Amazone s3 server over TLS-1.2
+ Download object from a bucket using GET method.
+ Upload single chunk using PUT method.

In my application, i have a 1MB file on the NVM storage, which i want to upload it to Amazone S3 server.
For sure, I cannot allocate a larger buffer of size 1MB, cause i'm working with a uC on the edge, since there is a very limited amount of RAM.

BTW, HTTPClient library provided by C31xx SDK, support the chunked transfers using @ref HTTPClient_CHUNK_START, @ref HTTPClient_CHUNK_END and @ref HTTPClient_DROP_BODY flags,
in order to notify the library that the request is the start/end of a chunked transfer.
After sending a PUT request with chunked transfer, I am getting a 501: HTTP_SC_NOT_IMPLEMENTED < Server Error >

From these what I understood is, for Chunked upload, I first need to make a CanonicalRequest string which is described in the AWS Docs links:
docs.aws.amazon.com/.../sigv4-streaming.html
docs.aws.amazon.com/.../sigv4-auth-using-authorization-header.html.

Is there a compatible HTTP Client that support Authorization Header? (Signature V4).

Does TI provide a demo with chunked upload using canonical requests?

Every requests chunk should contain some metadata such as : chunk Hash, chunk size. Is it possible to make it with the current HTTP Client?

HTTP client's API must be compatible to use with such popular service as Amazon S3.

Regards,
Ridha.

  • Hi Ridha,

    I'm not sure whether the library supports all these (e.g. sign4-auth). I'll try to check. We don't have any example that uses PUT currently.

    At least part of the work which relates to the HTTP payload should be handled by the application (such as the size and hash calculations).

    The httpclient sources are available and you can try to debug and update it if something is missing (or to use a 3rd party http client code).

    The interface to the CC3135 is not the problem and NWP does support everything needed for such transfer.

    Br,

    Kobi