Found a solution.
I've created a method Get policies for several files - as many as the user has selected
getAmazonUploadPolicyItems(count, callback);
The server method returns a list of policies
And then I do this
var pocilites = { };
uploader.bind("BeforeUpload", function (up, file) {
// this fires before each file upload
var response = policies[file.id];
uploader.settings.multipart_params.key = response.key;
uploader.settings.multipart_params.policy = response.policy;
uploader.settings.multipart_params.signature = response.signature;
uploader.settings.multipart_params.Filename = response.filename;
});
uploader.bind("FilesAdded", function (up, files) {
getAmazonUploadPolicyItems(files.length, function (response) {
$.each(files, function(i, file) {
policies[file.id] = {
key: response[i].Key,
policy: response[i].Policy,
signature: response[i].Signature,
filename: response[i].Filename
};
});
uploader.start();
});
});
Hope this helps someone esle.
PS: For some unknown reason, sometimes when uploading several files I get "invalid signature" from Amazon, but on a second attempt it works fine. Any ideas?