title: react native - Upload video to AWS S3 storage using AWS Amplify
body: <p>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:</p>
  
  <p><a href="https://aws-amplify.github.io/docs/js/storage#put" rel="nofollow noreferrer">aws-amplify Upload image using PUT in Storage</a></p>
  
  <p>I apply the same code to upload a video and success. However, the app crash if the video's size is big.</p>
  
  <p>According to the example, they read and convert the image/video file to <code>base64</code> (consume memory a lot and even cause the app crash) then upload everything on the server.</p>
  
  <h1>UPDATE</h1>
  
  <p>I found the answer using blob from this link</p>
  
  <p><a href="https://stackoverflow.com/questions/49341597/react-native-image-upload-via-aws-amplify-using-storage-class/49345264?noredirect=1#comment93421710_49345264">React native - Upload image to AWS S3 using blob</a></p>
  
  <pre><code>uploadImageVersion2 = async () =&gt; {
  
      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 =&gt; console.log(data))
          .catch(err =&gt; console.log(err))
  }
  </code></pre>
  
  <p>However, there is an error:</p>
  
  <p><a href="https://i.stack.imgur.com/9FWSF.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9FWSF.png" alt="using url as uri"></a></p>
  
  <p>My questions are: <br/>
  1/ Is there any way to avoid convert <code>base64</code> before upload the image/video using AWS Amplify <br/>
  2/ Is there any other ways to upload image/video in React native to AWS S3 without using Storage in AWS Amplify.</p>
  
  <p>If you know the answer of these two questions, please let me know and show me how.</p>
  
  <p>Thank you in advance!</p>