Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 无法将录制的WebRTC视频/音频保存到Amazon S3_Amazon S3_Webrtc - Fatal编程技术网

Amazon s3 无法将录制的WebRTC视频/音频保存到Amazon S3

Amazon s3 无法将录制的WebRTC视频/音频保存到Amazon S3,amazon-s3,webrtc,Amazon S3,Webrtc,我正在使用RecordRTC.js在客户端生成一个.webm blob,这一切都按预期进行。然后我需要将这个.Webm文件保存到AmazonS3 我目前在控制台中收到一条“no element found”消息,因为出于安全考虑,不允许用blob填充文件字段-那么发送blob的正确做法是什么 我的S3帐户上保存了一个损坏的.webm文件,因此应用程序可以连接到S3 以下是我尝试发送.webm文件的JavaScript: /** * S3 CORS */ uploading = false;

我正在使用RecordRTC.js在客户端生成一个.webm blob,这一切都按预期进行。然后我需要将这个.Webm文件保存到AmazonS3

我目前在控制台中收到一条“no element found”消息,因为出于安全考虑,不允许用blob填充文件字段-那么发送blob的正确做法是什么

我的S3帐户上保存了一个损坏的.webm文件,因此应用程序可以连接到S3

以下是我尝试发送.webm文件的JavaScript:

/**
 * S3 CORS
 */
uploading = false;
var xhr = new XMLHttpRequest();

function uploadFile() {

    var fd = new FormData();
    var key = 'webup-' + (new Date).getTime() + '-' + 'webcam.webm'

    fd.append('key', key);
    fd.append('acl', 'private');
    fd.append('Content-Type', 'video/webm');
    fd.append('AWSAccessKeyId', 'access-id');
    fd.append('policy', 'policy-str');
    fd.append('signature', 'signature-str');

    fd.append('file', blob);  // blob = video.src (the generated webm file)

    xhr.upload.addEventListener("progress", uploadProgress, false);
    xhr.addEventListener("load", uploadComplete, false);
    xhr.addEventListener("error", uploadFailed, false);
    xhr.addEventListener("abort", uploadCanceled, false);

    xhr.open('POST', 'https://mybucket.s3.amazonaws.com/', true);
    xhr.send(fd);

    uploading = true;
}

function uploadProgress(evt) { }
function uploadComplete(evt) { alert('Upload Complete'); }
function uploadFailed(evt)   { alert('Upload Failed'); }
function uploadCanceled(evt) { alert('Upload Canceled') }

/** 
 * ready()
 */
 $(document).ready(function(){
     saveRecording.disabled = true;
     $("#save-recording").click(function(){
        uploadFile();
    });
});

提前谢谢

你应该试试看;检查文件。它将记录的blob读取为数据url;以及使用socket.io消息将生成的数据URL推送到nodejs服务器;不过,您可以轻松选择HTTP-POST机制。

谢谢您的建议。这引起了我的思考——我的应用程序是用Python编写的,所以设置一个单独的NodeJS服务器来处理网络摄像头视频/音频上传是否可行?很简单,它也可以与您的Python项目一起使用。这样就不需要在外部设置NodeJ。