相关疑难解决方法(0)

使用NodeJS + Express,aws-sdk直接将文件流传输到s3

我想通过带有NodeJS的浏览器直接将一些大文件上传到s3,目前还不清楚如何准备这个文件以便上传到s3.可能有一个更好的模块(如Knox)来处理这种情况,但我不确定.有什么想法吗?

文件对象

  file: { 
     webkitRelativePath: '',
     lastModifiedDate: '2013-06-22T02:43:54.000Z',
     name: '04-Bro Safari & UFO! - Animal.mp3',
     type: 'audio/mp3',
     size: 11082039 
  }
Run Code Online (Sandbox Code Playgroud)

S3 putObject

var params = {Bucket: 'bucket_name/'+req.user._id+'/folder', Key: req.body['file']['name'], Body: ???};
s3.putObject(params, function(err, data) {
    if (err)
      console.log(err);
    else
      console.log("Successfully uploaded data to myBucket/myKey");
});    
Run Code Online (Sandbox Code Playgroud)

file-upload amazon-s3 node.js express

7
推荐指数
1
解决办法
1万
查看次数

中止/停止亚马逊aws s3上传,aws sdk javascript

我正在使用aws sdk javascript在亚马逊s3上传文件.

代码:

AWS.config.update({
                accessKeyId : 'access-key',
                secretAccessKey : 'secret-key'
            });
            AWS.config.region = 'region';
            var bucket = new AWS.S3({params: {Bucket: 'bucket-name'}});
            //var fileChooser = document.getElementById('file');
            var files = event.target.files;
            $.each(files, function(i, file){
            //console.log(file.name);
                if (file) {
                    var params = {Key: file.name, ContentType: file.type, Body: file};
                    bucket.upload(params).on('httpUploadProgress', function(evt) {
                        console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
                        if("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%' == 'Uploaded :: 20%'){
                            console.log("abort upload");
                            bucket.abort.bind(bucket);
                        }
                    }).send(function(err, data) {
                        if(err != …
Run Code Online (Sandbox Code Playgroud)

javascript file-upload amazon-s3 amazon-web-services aws-sdk-js

4
推荐指数
1
解决办法
3821
查看次数

如何将图像上传到Node中的s3

将我的反应前端的文件发布到节点后端.

request
.post('/api/upload')
.field('fileName', res.body.text)
.field('filePath', `/${this.s3DirName}`) // set dynamically
.attach('file', data.file)
.end((err2, res2) => {
    if (err2){ 
        console.log('err2', err2);
        this.setState({ error: true, sending: false, success: true });
    }else{
        console.log('res2', res2);
        this.setState({ error: false, sending: false, success: true });
    }

});
Run Code Online (Sandbox Code Playgroud)

然后在我的节点后端我想上传到s3.我正在使用busboy来获取发布的多部分文件,然后将aws sdk发送到我的s3存储桶.

var AWS = require('aws-sdk');

const s3 = new AWS.S3({
  apiVersion: '2006-03-01',
  params: {Bucket: 'bucketName'}
});

static upload(req, res) {

    req.pipe(req.busboy);

    req.busboy.on('file', (fieldname, file, filename) => {
      console.log("Uploading: " + filename);
      console.log("file: ", file);

      var params = { …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services node.js aws-sdk

2
推荐指数
1
解决办法
3388
查看次数