Amazon web services 不确定为什么上传到S3的视频为0位
在尝试将视频上传到AWS的几天后,我已经成功(几乎)做到了。我看到的主要问题是,当我转到我的S3存储桶时,文件的大小为0b。我希望看到我可能做错了什么导致了这种情况的发生 在后端,我得到一个预签名,例如:Amazon web services 不确定为什么上传到S3的视频为0位,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,在尝试将视频上传到AWS的几天后,我已经成功(几乎)做到了。我看到的主要问题是,当我转到我的S3存储桶时,文件的大小为0b。我希望看到我可能做错了什么导致了这种情况的发生 在后端,我得到一个预签名,例如: const s3 = new AWS.S3({ accessKeyId: ACCESSKEY_ID, secretAccessKey: SECRETKEY }); const s3Params = { Bucket: BUCKET_NAME, Key: uui
const s3 = new AWS.S3({
accessKeyId: ACCESSKEY_ID,
secretAccessKey: SECRETKEY
});
const s3Params = {
Bucket: BUCKET_NAME,
Key: uuidv4() + '.mov',
Expires: 60 * 10,
ContentType: 'mov',
ACL: 'public-read'
};
let url = await s3.getSignedUrl('putObject', s3Params);
return { url };
一旦我有了上传的url。在前端,我发送文件的方式是:
const uploadFileToS3 = async (uri) => {
const type = video.uri.split('.').pop();
const respo = await fetch(uri, {
method: 'PUT',
body: {
url: video.uri,
type,
name: 'testing'
},
headers: {
'Content-Type': type,
'x-amz-acl': 'public-read'
}
});
const some = await JSON.stringify(respo);
它看起来确实在保存一些东西,因为我在bucket中看到它,但无法下载或查看它。只是显示了一个空页面,感觉好像什么都没有(视频)可能被上传到S3。在将视频上传到S3时,是否有任何指向我可能出错的地方的指针
谢谢您的帮助。上传文件时,您不能指定URL。您需要2次回迁:
- 第一个从
video.uri
- 第二个将视频上传到S3:
body:blob
要将文件作为blob下载,请使用。然后您可以使用它来上传文件()。当您下载它时,它实际上是零字节还是JSON?您似乎并没有将内容发送到任何地方,只发送JSON。也许您的案例也需要这样做?要同时添加这两个对象,
body
不能是JavaScript对象。它必须是字符串、博客或其他受支持的格式之一。这可能就是为什么你的身体最终是空的。不管是哪种方式,就像Marcin说的那样,你应该从文件中读取数据并将其放入主体中,而不是JavaScript对象中。@Marcin这实际上是我需要做的。非常感谢你给我这个。在我取出它并转换成一个水滴后,我可以看到它的大小,也可以从桶中观看视频。@没问题。如果你不介意的话,我会提供一个答案供将来参考。