gpt4 book ai didi

javascript - 如何将音频/视频数据 uri 从浏览器发送到 S3 中的文件

转载 作者:行者123 更新时间:2023-11-30 10:16:55 26 4
gpt4 key购买 nike

我有一个使用 putObject 将音频/视频 blob 上传到 S3 的实现。假设 obj 包含以下数据:

object {extension: "webm", type: "video/webm", 
contents: "data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvO…"}

其中内容是视频数据 URI(base64 字符串)。服务器端代码是:

var s3 = new AWS.S3();
obj.contents = obj.contents.split(',').pop();
buffer = new Buffer(obj.contents, "base64");

var params = {
Bucket: S3_BUCKET + "/videos/",
Key: fname, // add new name
Body: buffer,
ACL: 'private',
ContentType: obj.type
};
s3.putObject(params, handler);

如果我想在客户端执行此操作,我该如何传递 base64 字符串放对象? javascript中没有Buffer之类的东西。我看到 putObject 需要一个 new Buffer('...') ||流对象 || 'STRING_VALUE',但 STRING_VALUE 和选项是用于音频/视频文件,还是仅用于文本?

最佳答案

首先感谢AWS团队帮忙回答这个问题。看起来,虽然没有很好的记录,但 putObject() 确实接受 Blob 或任何 native 类型化数组 ( https://forums.aws.amazon.com/message.jspa?messageID=539115 )。这意味着您可以直接在浏览器中获取任何 Blob(例如音频或视频)并将其直接上传到 S3 文件。

audioBlob = this.GetAudioBlob()
var params = {
Bucket: "MYBUCKET",
Key: "audio_file_test.wav",
Body: audioBlob,//this hast to be a string
ACL: 'private',
ContentType: 'audio/wav',
};
s3.putObject(params, function(err,data){ console.log(err); } );

audioBlob 完全是一个 Blob 对象。 Blob {type: "audio/wav", size: 262188, slice: function}

关于javascript - 如何将音频/视频数据 uri 从浏览器发送到 S3 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com