IRISпредоставляет класс%Net.FtpSession
,Вы можете использовать его из InterSystems «Настроить сеанс с FTP-сервером в IRIS».
Чтобы Установить FTP-сессию, выполните следующие действия:
%Net.FtpSession
Пример。Timeout
Таймаут указывает время в секундах ожидания ответа от FTP-сервера.SSLConfiguration
Указывает активацию соединенияSSL/TLS
Конфигурация(если есть)。еслиFTP
Использование сервераHTTPS,Пожалуйста, используйте эту опцию.TranslateTable
Указывает таблицу перевода, которая будет использоваться при чтении или записи содержимого файла.。UsePASV
давать возможностьPASVмодель。FTP
Использование сервераhttps
час,SSLCheckServerIdentity
Применимый。По умолчанию,когда%Net.FtpSession
Примерподключиться кSSL/TLS
серверчас,Он проверяет, соответствует ли имя сервера Сертификата DNS-имени, используемому для подключения к серверу. Если эти имена не совпадают,Соединение не разрешено.Чтобы отключить эту проверку,пожалуйста ВоляSSLCheckServerIdentity
Свойство настроено на0。
Connect()
способ подключения к определенномуFTPсервер。ascii()
илиbinary()
метод Воляпередача инфекциимодель Установить отдельнодляASCIIмодельилидвоичныймодель。Для просмотракогда前передача инфекциимодель,Проверьте значение атрибута Type экземпляра.Уведомление:%Net.FtpSession
изкаждыйметод Все возвращают одинаковый статус,Этот статус следует проверить. Эти методы также устанавливают значения свойств, предоставляющих полезную информацию о состоянии сеанса:
CONNECTED
дляTRUE,В противном случае ЛОЖЬ.ReturnCode
Содержит последний раз сFTPсерверкоммуникациячасизкод возврата。ReturnMessage
Содержит последний раз сFTPсерверкоммуникациячасизответное сообщение。Status()
методвозвращаться(по ссылке)FTPсерверизсостояние。
%Net.FtpSession
существоватьFTPсервер Проверьте имя файла наипутьчас,использоватьRFC 2640
введено виз Техническая автоматическая обработкахарактерустановить преобразование。когда%Net.FtpSession
Примерподключиться кFTPсерверчас,этовстречаиспользоватьFeatсообщение для подтверждениясерверлииспользоватьUTF-8
характер。еслида,это Воля Связь по командному каналу переключается наUTF-8
,чтобы все имена файлов и пути корректно работали сUTF-8
взаимное преобразование。
еслисервер Не поддерживаетсяFEAT
Заказили О поддержке не сообщаетсяUTF-8
,%Net.FtpSession
Пример ВоляиспользоватьRAW
модельи читатьилиписатьRAWбайт。
в редких случаях,При необходимости укажите таблицу преобразования, которую следует использовать.,пожалуйстанастраивать%Net.FtpSession
ПримеризCommandTranslateTable
свойство。Обычно,Не должно быть необходимости использовать этот атрибут.
После установки FTP-сессии,Вот и всевызоввстреча话ПримеризметодвыполнитьFTPЗадача。%Net.FtpSession
Предоставьте следующие файлы для чтения и записи.изметод:
Удалить файлы.
Копирование файлов с FTP-сервера на InterSystems IRISв потоке,и возвращает поток по ссылке. Чтобы использовать этот поток,пожалуйстаиспользоватьстандартный потокметод:Write()
、WriteLine()
、Read()
、ReadLine()
、Rewind()
、MoveToEnd()
иClear()
。Достаточно хорошоиспользоватьпотокизSize
свойство。
Разрешить извлечение файла продолжить,потому чтодля Данныйизпотокда由начальство一次использоватьRetrieve()
создаватьиз。
Запишите содержимое потока IRIS в файл на FTP-сервере.
Добавляет содержимое потока в конец указанного файла.
Переименуйте файл.
также,%Net.FtpSession
Обеспечивает навигациюи ИсправлятьFTPсерверначальствоизфайловая системаизметод:GetDirectory()
、SetDirectory()
、SetToParentDirectory()
иMakeDirectory()
。
Для проверки содержимого файловой системы,пожалуйстаиспользоватьlist()
илиNameList()
метод。
List()
создавать一个поток,Содержит список всех файлов, имена которых соответствуют заданному шаблону.,и возвращает поток по ссылке.NameList()
создаватьмассив имен файловпо ссылкевозвращаться该数组。Достаточно хорошоиспользоватьChangeUser()
метод Изменятьдлядругие пользователи;Это быстрее, чем выйти из системы и войти снова.。использоватьLogout()
метод Выйти。
System()
методвозвращаться(по ссылке)О хостингеFTPсерверизтип компьютераизинформация。
Size()
иMDTM()
метод分别возвращаться文件изразмери Исправлятьчасмежду。
использовать УниверсальныйsendCommand()
метод КFTPсервер发送Закази читать响应。этотметод Доступно для отправки%Net.FtpSession
Команды, явно не поддерживаемые в。
Если вы хотите загрузить большой файл,пожалуйстаучитыватьиспользоватьпоток接口изLinkToFile()
метод。То есть,Вместо создания потока и чтения в него файла,而дасоздаватьпоток并Воляэто связано с файлом。существоватьвызов%Net.FtpSession
изStore()
методчасиспользоватьэтот链接поток。
Method SendLargeFile(ftp As %Net.FtpSession, dir As %String, filename As %String)
{
Set filestream=##class(%FileBinaryStream).%New()
Set sc=filestream.LinkToFile(dir_filename)
If $$$ISERR(sc) {do $System.Status.DisplayError(sc) quit }
//Загруженный файл Воля имеет то же имя, что и исходный файл
Set newname=filename
Set sc=ftp.Store(newname,filestream)
If $$$ISERR(sc) {do $System.Status.DisplayError(sc) quit }
}
Можно настроитьFTP
сервергенерироватьизперезвонить。Например,делая,Может предоставлять пользователям информацию о том, что сервер все еще обрабатывает большие переводы.,или разрешить пользователю прервать передачу.
Чтобы настроить обратные вызовы FTP:
%Net.FtpCallback
из Подкласс。RetrieveCallback()
метод,Этот метод вызывается периодически при получении данных с FTP-сервера.StoreCallback()
метод,Этот метод вызывается периодически, когда данные Воля записываются на FTP-сервер.FTP
встреча话час(нравиться“Установить FTP-сессию”как сказано в),Воляперезвонить Свойство настроено наравныйиз Подкласс%Net.FtpCallback
。