2014-01-14 3 views
1

Я реализую загрузчик файлов s3, и мы пытаемся запросить ключ от сервера для загрузки файла, но в то же время проверяем параметры, которые дополнительно передаются так что пользователь не мешает загрузке файла, если что-то вроде имени файла недействительно:FineUploader: s3 поиск результатов поиска в зависании загрузки

objectProperties: { 
    key: function(fileId) { 
    var keyRetrieval = new qq.Promise(), 
    filename = $("#fineuploader-s3").fineUploader("getName", fileId); 

    $.post("/path_to_initiate_file_upload", { name: filename, current_folder: null }) 
     .done(function(data) { keyRetrieval.success(data.key); }) 
     .fail(function() { keyRetrieval.failure(); }); 

    return keyRetrieval; 
    } 
} 

Сначала я столкнулся с проблемой # 1071 и с тех пор я просто закомментировать эту строку на некоторое время, но после этого я сейчас нахожусь в том месте, где, когда я возвращаю ответ не-200, он просто появляется. Есть ли что-нибудь, что я могу сделать в функции сбоя ключевого поиска, чтобы Fine Uploader знал, что эта конкретная загрузка не удалась и отобразило сообщение об ошибке?

Мне известно о «подтверждении» события для файла, но я бы предпочел не требовать двух отдельных вызовов ajax перед каждой загрузкой файла. Можно ли вызвать событие проверки, извлечь пользовательский файл из результата этого вызова, а затем сохранить его так, чтобы он использовался в качестве ключа для загрузки файла в s3?

+0

Это, похоже, еще одна ошибка в поддержке ключевых функций Fine Uploader S3. Я бы предложил переместить ваш вопрос в проблему в треевом выпуске проекта Github. Мы планируем выпустить 4.2 завтра. Надеюсь, мы сможем это выпрямиться вовремя. –

+0

[Проблема зарегистрирована и исправлена] (https://github.com/Widen/fine-uploader/issues/1093) в ветке разработки. Вскоре я расскажу о некоторых деталях. –

ответ

1

Это был bug in Fine Uploader S3, в настоящее время зафиксированный в ветке разработки. Исправление будет выпущено завтра с Fine Uploader 4.2. Обратите внимание, что issue #1071, который вы упомянули, также будет зафиксирован как часть 4.2.

Теперь, когда функция поиска ключей возвращает qq.Promise, а выполнение обещаний приводит к failure(), связанная загрузка, в свою очередь, также будет сбой.

Я бы посоветовал вам НЕ использовать функцию поиска ключей как возможность проверить ваш файл. Вы действительно должны использовать для этого обратный вызов (ы) проверки подлинности. Зачем? Ну, если вы решите «аннулировать» файл в своей функции поиска ключей, и вы включили автозапуск, Fine Uploader S3 попытается повторить попытку до тех пор, пока все автоматические попытки не будут выполнены. Вряд ли вы хотите, чтобы аннулировать файл. Я не ожидаю, что вы измените это поведение, поскольку ожидание заключается в том, что неудачное извлечение ключей - это то, что мы хотели бы повторить. Кроме того, если вы аннулируете файл с помощью функции поиска ключей, status of the file будет qq.status.UPLOAD_FAILED вместо того, что вам может понадобиться (qq.status.REJECTED). Зачем? Fine Uploader S3 не знает, что вы аннулируете файл, только что извлечение ключа завершилось неудачно.

+0

Спасибо за быстрый ответ! Это именно то, что я искал. –

Смежные вопросы