尝试使用AWS
loopback-component-storage
以下是方法:
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:拒绝访问\ n at Request.extractError (/vagrant/node_modules/aws-sdk/lib/services/s3.js:538:35) 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)\n at Request.transition (/vagrant/node_modules/aws-sdk/lib/request.js:22:10)\n at AcceptorStateMachine.runTo (/vagrant/node_modules/aws-sdk/lib/state_machine.js:14:12)nn at /vagrant/node_modules/aws-sdk/lib/state_machine.js:26:10,n at 请求。 (/vagrant/node_modules/aws-sdk/lib/request.js:38:9)\n at 请求。 (/vagrant/node_modules/aws-sdk/lib/request.js:670:12)\n at Request.callListeners (/vagrant/node_modules/aws-sdk/lib/sequential_executor.js:115:18)","code":"AccessDenied","region":null,"time":"2016-08-24T19:43:28.415 Z”, “的requestId”: “2802978376D53185”, “extendedRequestId”: “LhRlXP6H2EQo8M0ECUlL8js4W9CP99h5fvsSHjVSs3mhB9OupvWpz7UdB1HhN0Ntxf6sFLYoHdk =”, “的StatusCode”:403, “重试”:假 “retryDelay”:44.73750370088965}
第二个当然是不同的。
我没有运气就尝试使用空options
对象。
欢迎任何形式的建议。提前谢谢。
尝试使用不同的密钥/密钥ID,结果相同。我如何获取上传文件的网址?我可以成功上传图片后的当然:p
答案 0 :(得分:0)
尝试在 s3存储桶(权限)策略中为用户启用权限。 您是否已将角色分配给运行代码的实例? (如果使用EC2作为工作站)
这应该是一个评论。但是,遗憾的是我没有权利发表评论。