This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* I recently needed to upload a file from the phone's filesystem to S3 using temporary credentials | |
* (i.e. access key, secret key and session token) issued by an API for a React Native application, | |
* without the overhead of Base64 encoding the file and passing it over the bridge (as it could be | |
* several MB big), and wanted to avoid writing native code to do this. | |
* | |
* None of the S3 libraries online worked with the temporary credentials, but I figured out a | |
* solution using the official AWS SDK (which is good, as it supports all the relevant authentication | |
* out of the box) and the react-native-fetch-blob module, which allows you to upload directly from the | |
* filesystem with the correct Content-type header (as far as I can tell, React Native's fetch only |