如何将base64视频网址放在亚马逊s3 url usign axios上

时间:2017-12-15 11:38:55

标签: reactjs base64 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.')
}

1 个答案:

答案 0 :(得分:0)

以下是如何在S3签名网址上传我的文件的完整示例。在这里,我意识到我们不需要上传base64url就可以完全上传文件而无需编码。

非常感谢Medium。在这里,您可以阅读更多相关信息 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>
    );
  }
});