[AI CC-CC2021] Загрузка файлов по FTP с использованием Adobe Bridge

Статус
Закрыто для дальнейших ответов.

angelp

Участник
Топикстартер
Сообщения
50
Реакции
4
Сделал на нем автоматический загрузчик по FTP, но скорость в несколько раз, чуть ли не в десятки раз отличается от оболочных.
Решается ли как-нибудь данная проблема, или это беда Adobe?

Код:
 var ftp = new FtpConnection (FTPservName);
                                                ftp.passive = true;
                                                ftp.username = FTPUserName;
                                                ftp.password = FTPPassword;
                                                er=0;
                                                        for (arrS=0; arrS<FileArr.length; arrS++) {
                                                            $.sleep (sleepTime);
                                                                 //   prwin.pnl.progBar.value++;
                                                            if (er<3&&ftp.put (FileArr[arrS], FileArr[arrS].name)){
                                                                                                    CurrTime ();
                                                                                                    $.writeln (FileArr[arrS].name + ' - was sent to - '+CHBoxN[serv]+' in ' + HMS);
                                                                                                    FTPlogFile.writeln(FileArr[arrS].name + ' - was sent to - '+CHBoxN[serv]+' in ' + HMS);
                                                                                                    er=0;
                                                                                                    FileArr[arrS].close();
                                                                                       }
                                                                                        else {
                                                                                                    CurrTime ()
                                                                                                    $.writeln (FileArr[arrS].name + ' - sending Error to - ' +CHBoxN[serv]+' in ' + HMS);
                                                                                                    FTPlogFile.writeln(FileArr[arrS].name + ' - sending Error to - ' +CHBoxN[serv]+' in ' + HMS);
                                                                                                    FileArr[arrS].close();
                                                                                                     arrS=arrS-1; er=er+1;
                                                                                         if (er ==3) {er = 0; arrS=arrS+1;}
                                                                                
                                                                                      }
                                                          
                                                         //           prwin.close();  
                                                       }
                                                    ftp.close();

Это мой код функции, если более кратко то:

Код:
var ftp = new FtpConnection (FTPservName);
                                                ftp.passive = true;
                                                ftp.username = FTPUserName;
                                                ftp.password = FTPPassword;
                                                ftp.put (FileArr[arrS], FileArr[arrS].name)){
                                                FileArr[arrS].close();  
                                                ftp.close();


Ну или подскажите на каком языке лучше написать, чтобы работал быстро как оболочный загрузчик, и не сложно было разобраться в основах языка.
 

angelp

Участник
Топикстартер
Сообщения
50
Реакции
4
Походу проблема в узлах некоторых сайтов. Просто, когда в оболочном загрузчике происходит загрузка, то там она идет в асинхронном виде, по 4 файла на узел за 1 раз, и одновременно на несколько узлов. Придется дальше разбираться, как прикрутить асинхрон, не знаю возможно ли будет сделать для моих задач, еще не совсем разобрался как он (асинхрон) работает.
 

Dmitrij M

15 лет на форуме
Сообщения
11 046
Реакции
5 944

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
так можно и синхронно сделать, при вызове bridgeTalk указывать таймаут в скобках

попробуйте сторонние приложения, которые синхронизируют папки с ftp, таких довольно много.
 

angelp

Участник
Топикстартер
Сообщения
50
Реакции
4
Не понял про "сделать синхронно"? У меня в коде синхронно и есть. Дело в том, что как в коде все работает, просто хотелось бы посылать несколько файлов за раз, ну или на несколько узлов за раз.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а, не так прочитал!

bridgeTalk по умолчанию запускает процессы асинхронно, если в скобках вызова не указывать таймаут

send()

bridgeTalkObj.send ([timoutInSecs[, launchParameters]])

timoutInSecs
Optional. A maximum number of seconds to wait for a result before returning from this function. The message is sent synchronously, and the function does not return until the target has processed the message or this number of seconds have passed.

If not supplied or 0, the message is sent asynchronously, and the function returns immediately without waiting for a result.

я просто так понимаю судя по разделу вызывается это из скрипта для иллюстратора
 
  • Спасибо
Реакции: angelp

angelp

Участник
Топикстартер
Сообщения
50
Реакции
4
Да нет, все из под Bridge сразу исполняется, просто в этом разделе все сообщения у меня, а раздел про Bridge я не нашел.
Кстати про timeout спасибо, не знал что это не все время ожидания, а только результата. Или я не так понял, ну грубо говоря, посылаю в Фотошоп сообщение сохранить файл, ставлю в таймауте 1 час, но вернется он все равно по сохранению файла, не дожидаясь 1 часа?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
конечно. таймаут - это максимальное время ожидания завершения
 
Статус
Закрыто для дальнейших ответов.