我试过以下代码,请以此为例
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 :(得分: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>
);
}
});