我一直在尝试将视频上传到 S3 一段时间,并希望得到一些指示。目前,我已阅读并被告知我们需要将实际文件发送到 S3 而不是 url(如果我们在 aws 之前将其发送到后端,我们可能会这样做)。
我正在尝试通过
const getBlob = async (fileURi) => {
console.log('THIS IS IT', fileURi);
const resp = await fetch(fileURi);
const videoBody = await resp.blob();
console.log(videoBody);
};
getBlob(video.uri);
我遇到的问题是我无法实际获取视频文件。当我停止录制视频时await camera.stopRecording();
,我得到的回报是
Object {
"uri": "file:///path/20DD0E08-11CA-423D-B83D-BD5ED40DFB25.mov",
}
是否有推荐的方法来成功获取实际文件以便通过客户端将其发送到 S3?
我目前尝试发送不起作用的视频的方式是:
const formData = new FormData();
formData.append('file', video.uri);
await fetch(url, {
method: 'POST',
body: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
url:指的是我们从aws返回的presignedUrl。
PS - 通过 fetch 调用发送到服务器确实有效,但我注意到这种方法也会让用户等待 10 多秒,因为我需要将视频发送到服务器然后等待它完成在 AWS 中的上传。
谢谢大家的帮助。