2017-12-15 9 views
0
나는 다음 코드를 시도

에 base64로 비디오 URL을 넣어,어떻게 아마존 S3의 URL usign의 Axios의

var options = { headers: { 'Content-Type': 'media/mp4' }}; 
var video_buffer = new Buffer(videoBase64string); 
var data = { 
    Key: signedVideoKey, 
    Body: video_buffer, 
    ContentEncoding: 'base64' 
}; 

axios.put(signedVideoUrl, data, options).then((resp) => { 
    alert('Video has been uploaded.') 
} 
+0

에 대한 자세한 내용을보실 수 있습니다. API에 의해 생성 된 오류는 없지만 업로드 된 비디오가 손상되어 플레이어 – Anil

+0

에서 재생되지 않는 경우 컨텍스트, 달성하려는 내용 및 문제점을 설명하지 않았습니다. 이 방법은 우리가 어떻게 당신을 도울 수 있는지 불분명합니다. – Irreducible

답변

1

여기 S3가 URL을 체결 내 파일을 업로드 어떻게 완벽한 예입니다 예를 들어이를 확인하시기 바랍니다. 여기서는 인코딩없이 파일을 완전히 업로드하는 base64url을 업로드 할 필요가 없다는 것을 깨달았습니다.

중간에 감사드립니다. 내 질문에 사실은 내가 스택 오버 플로우를 새로운 오전 해결되지 왜 여기서이 https://medium.com/@kevinwu/client-side-file-upload-to-s3-using-axios-c9363ec7b530

var React = require('react'); 
var Dropzone = require('react-dropzone'); 
var axios = require('axios'); 

exports = module.exports = React.createClass({ 
    _onDrop: function (files) { 
    var file = files[0]; 

    axios.get(ENDPOINT_TO_GET_SIGNED_URL, { 
     filename: file.name, 
     filetype: file.type 
    }) 
    .then(function (result) { 
     var signedUrl = result.data.signedUrl; 

     var options = { 
     headers: { 
      'Content-Type': file.type 
     } 
     }; 

     return axios.put(signedUrl, file, options); 
    }) 
    .then(function (result) { 
     console.log(result); 
    }) 
    .catch(function (err) { 
     console.log(err); 
    }); 
    }, 
    render: function() { 
    return (
     <Dropzone onDrop={ this._onDrop } size={ 150 }> 
     <div> 
      Drop some files here! 
     </div> 
     </Dropzone> 
    ); 
    } 
});