2015-08-25 4 views
0

Мой код ниже работает нормально, пока я загружаю только два файла. Если я загружаю 3 или более, каждый файл после второго не добавляется в мой ведро s3 (хотя ошибка не отображается plupload).Невозможно загрузить более 2 файлов на S3 с помощью plupload

Может ли кто-нибудь понять, почему?

 var uploader = new plupload.Uploader({ 
    browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself 
    url: 'https://s3.amazonaws.com/mybucket', 
    filters: { 
     max_file_size: '25mb', 
     prevent_duplicates: true, 
     multiple_queues: true 
    } 
}); 

uploader.init(); 

uploader.bind('FilesAdded', function (up, files) { 
    plupload.each(files, function (file) { 

     var myFileName = file.name.toLowerCase(); 
     myFileName = myFileName.replace(/[|&;$%@"<>()+,]/g, ""); 

     var elem = $('#hfReplyGuid'); 


      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       url: "WebService.asmx/prepareUpload", 
       data: "{'acl':'private','bucket':'myBucket','file':'" + folderPath + elem.val() + "_" + myFileName + "'}", 
       success: function (data) { 
        params[myFileName] = { policy: data.d[0].Policy, signature: data.d[0].Signature }; 

        var multipart_params = { 
         'key': folderPath + elem.val() + "_" + myFileName, 
         'filename': folderPath + elem.val() + "_" + myFileName, 
         'AWSAccessKeyId': AWSAccessKey, 
         'acl': 'private', 
         'signature': params[myFileName]["signature"], 
         'policy': params[myFileName]["policy"], 
         'success_action_status': '201' 
        } 


        up.setOption('multipart_params', multipart_params); 

        uploader.start(); 
       }, 
       error: function (xhr, ajaxOptions, thrownError) { 
        alert(xhr.status); 
        alert(xhr.responseText); 
        alert(thrownError); 
       } 
      }); 

    }); 

}); 

ответ

0

Я решил это, основываясь код на этом посту Upload multiple files to Amazon S3 using plupload

Однако я должен был создать политику в случае FileFiltered, запустите загрузчик в случае FilesAdded, а затем добавить каждую политику в случае BeforeUpload как ниже:

 var multipart_params = policies[file.id]; 
     up.setOption('multipart_params', multipart_params); 
Смежные вопросы