我正在尝试使用 React Native 中的 AWS Amplify 将视频上传到 AWS S3。点击此链接后,我可以上传图像:
aws-amplify 使用存储中的 PUT 上传图像 https://aws-amplify.github.io/docs/js/storage#put
我应用相同的代码上传视频并成功。但是,如果视频尺寸很大,应用程序就会崩溃。
根据示例,他们读取图像/视频文件并将其转换为base64
(消耗大量内存,甚至导致应用程序崩溃)然后将所有内容上传到服务器上。
UPDATE
我从这个链接中使用 blob 找到了答案
React Native - 使用 blob 将图像上传到 AWS S3 https://stackoverflow.com/questions/49341597/react-native-image-upload-via-aws-amplify-using-storage-class/49345264?noredirect=1#comment93421710_49345264
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))
}
然而,有一个错误:
我的问题是:
1/ 有什么办法可以避免转换base64
使用 AWS Amplify 上传图像/视频之前
2/是否有其他方法可以在不使用 AWS Amplify 中的存储的情况下将 React 本机中的图像/视频上传到 AWS S3。
如果您知道这两个问题的答案,请告诉我并告诉我如何做。
先感谢您!