I am trying to upload a video to AWS S3 by using AWS Amplify in React native. I am able to upload an image when follow this link:
aws-amplify Upload image using PUT in Storage
I apply the same code to upload a video and success. However, the app crash if the video's size is big.
According to the example, they read and convert the image/video file to base64
(consume memory a lot and even cause the app crash) then upload everything on the server.
UPDATE
I found the answer using blob from this link
React native - Upload image to AWS S3 using blob
uploadImageVersion2 = async () => {
const response = await fetch("https://static.asiachan.com/Berry.Good.600.42297.jpg");
const blob = await response.blob();
const fileName = 'profileImage.jpg';
await Storage.put(fileName, blob, {
contentType: 'image/jpg',
level: 'private'
}).then(data => console.log(data))
.catch(err => console.log(err))
}
However, there is an error:
My questions are:
1/ Is there any way to avoid convert base64
before upload the image/video using AWS Amplify
2/ Is there any other ways to upload image/video in React native to AWS S3 without using Storage in AWS Amplify.
If you know the answer of these two questions, please let me know and show me how.
Thank you in advance!