Javascript 如何将音频/视频数据uri从浏览器发送到S3中的文件
我有一个使用putObject将音频/视频blob上传到S3的实现。 假设obj包含以下数据:Javascript 如何将音频/视频数据uri从浏览器发送到S3中的文件,javascript,amazon-s3,Javascript,Amazon S3,我有一个使用putObject将音频/视频blob上传到S3的实现。 假设obj包含以下数据: object {extension: "webm", type: "video/webm", contents: "data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvO…"} 其中contents是视频数据URI(base64字符串)。 服务器端代码为: var s3 = new AWS.S3(); obj.contents = obj.conten
object {extension: "webm", type: "video/webm",
contents: "data:video/webm;base64,GkXfo0AgQoaBAUL3gQFC8oEEQvO…"}
其中contents是视频数据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中没有缓冲区这样的东西。
我看到putObject需要一个新缓冲区(“…”)| | streamObject | | STRING_VALUE“
,
但是
STRING\u值是音频/视频文件的和选项,还是仅用于文本?首先,我要感谢AWS团队帮助回答这个问题。看起来,尽管没有很好的文档记录,putObject()确实接受blob或任何本机类型的数组()。这意味着您可以直接在浏览器中获取任何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”,大小:262188,slice:function}
首先,我要感谢AWS团队帮助回答这个问题。看起来,尽管没有很好的文档记录,putObject()确实接受blob或任何本机类型的数组()。这意味着您可以直接在浏览器中获取任何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”,大小:262188,切片:function}