我正在开发一个具有多个图片上传功能的strongloop应用程序。我使用 loopback component-storage 来使用REST API上传文件。
容器是动态的(客户端应用程序发送唯一的容器ID),并且我在“远程退出”之前为容器创建文件夹。使用容器ID。此外,我有一些应用程序逻辑内部&after;远离'。
最近我遇到一个奇怪的问题,即在一个容器下上传的图片会被另一个图片上传覆盖,这会在不同的容器ID下发生。这是一个罕见的问题,我只遇到过两次。
beforeRemote方法:
MyModel.beforeRemote('upload', function (ctx, res, callback) {
var arrStr = ctx.req.url.split(/[//]/);
var mkdirp = require('mkdirp');
var path = '../storage/images/' + arrStr[1]; //arrStr[1] is the container folder
mkdirp(path, function (err) {
console.log(err);
});
callback();
});
afterRemote方法:
MyModel.afterRemote('upload', function (ctx, res, callback) {
var mainLogics = function(){
var file = res.result.files.file[0];
if (file != undefined) {
if (file != null) {
var myData = res.result.fields.data[0];
if (myData != undefined) {
//My application logic
callback();
}
else
callback();
}
else
callback();
}
}
mainLogics();
});
在这一系列步骤中发生了图像冲突。图像大小超过500 KB,图像集包含2个图像。
注意:客户端A的互联网连接较差,而客户端B的互联网连接水平适中。
我重新检查了客户发送的ID,它们是唯一的。我尝试按照上面的相同步骤重新创建它但失败了。
我想知道当上传并行时,图像是如何被其他上传覆盖的。我是Strongloop的新手,如果有人能给我一个解决这个问题原因的线索,我真的很感激。
以下是我的版本: