繁体   English   中英

带环回的AWS文件上传:无法在S3上创建分段上传

[英]AWS file upload with loopback: Failed to create a multipart upload on S3

尝试使用loopback-component-storage将多个图像文件上传到AWS

以下是方法:

 Game.add = function(ctx,options,cb)
        {
               var status = ctx.req.query.status,
                defaultLangCode = ctx.req.query.defaultLangCode,
                nameEn = ctx.req.query.nameEn;

            var rec = new Object();
            rec.parentHouseId = houseId;
            rec.status = status;
            rec.defaultLangCode = defaultLangCode;
            rec.nameEn = nameEn;

            if(!options) options = {forceIframeTransport : true};
            ctx.req.params.container = 'common';
            Game.app.models.container.upload(ctx.req,ctx.result,options,function (err,fileObj) {
                if(err) {
                    cb(err);
                } else {
                    var fileInfo = fileObj.files.file[0];
                    console.log(fileInfo);
                }
            });
        };

Game.remoteMethod(
        'add',
        {
            http:{path: '/add', verb: 'post', status: 200, errorStatus: 400},
            accepts: [
                { arg: 'ctx', type: 'object', http: { source:'context' } },
                { arg: 'options', type: 'object', http:{ source: 'query'} }
            ],
            returns: {
                arg: 'fileObject', type: 'object', root: true
            }
        }
    );

我想在那里上传两个图像文件。 发布数据/图像会产生两次此错误:

无法在S3上创建分段上传:{“message”:“拒绝访问”,“堆栈”:“AccessDenied:在Request.extractError中拒绝访问\\ n(/ vagrant / node_modules / aws-sdk / lib / services / s3。 js:538:35)\\ n在Request.callListeners(/vagrant/node_modules/aws-sdk/lib/sequential_executor.js:105:20)n
在Request.emit(/vagrant/node_modules/aws-sdk/lib/sequential_executor.js:77:10)\\n
在Request.emit(/vagrant/node_modules/aws-sdk/lib/request.js:668:14),在Request.transition(/vagrant/node_modules/aws-sdk/lib/request.js:22:10) \\ n在AcceptorStateMachine.runTo(/vagrant/node_modules/aws-sdk/lib/state_machine.js:14:12),在/vagrant/node_modules/aws-sdk/lib/state_machine.js:26:10,n at请求。 (/vagrant/node_modules/aws-sdk/lib/request.js:38:9)\\n请求。 (/vagrant/node_modules/aws-sdk/lib/request.js:670:12)nn在Request.callListeners(/vagrant/node_modules/aws-sdk/lib/sequential_executor.js:115:18)","code “:” 存取遭拒”, “区”:NULL, “时间”: “2016-08-24T19:43:28.415Z”, “的requestId”: “2802978376D53185”, “extendedRequestId”: “LhRlXP6H2EQo8M0ECUlL8js4W9CP99h5fvsSHjVSs3mhB9OupvWpz7UdB1HhN0Ntxf6sFLYoHdk =”, “的StatusCode”: 403, “重试”:假的, “retryDelay”:44.73750370088965}

第二个当然是不同的。

我尝试使用空options对象没有运气。

欢迎任何形式的建议。 提前致谢。

尝试使用不同的密钥/密钥ID,相同的结果。 我如何获取上传文件的网址? 我可以成功上传图片后的当然:p

尝试在s3存储桶(权限)策略中为用户启用权限。 您是否已将角色分配给运行代码的实例? (如果使用EC2作为工作站)

这应该是一个评论。 但是,不幸的是我没有权利发表评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM