Использовать FTP
Использовать FTP

Использовать FTP

IRISпредоставляет класс%Net.FtpSession,Вы можете использовать его из InterSystems «Настроить сеанс с FTP-сервером в IRIS».

Установить FTP-сессию

Чтобы Установить FTP-сессию, выполните следующие действия:

  1. создавать%Net.FtpSessionПример。
  2. При желании вы можете установить свойства этого экземпляра для управления общим поведением сеанса:
  • Timeout Таймаут указывает время в секундах ожидания ответа от FTP-сервера.
  • SSLConfigurationУказывает активацию соединенияSSL/TLSКонфигурация(если есть)。еслиFTPИспользование сервераHTTPS,Пожалуйста, используйте эту опцию.
  • TranslateTableУказывает таблицу перевода, которая будет использоваться при чтении или записи содержимого файла.。
  • UsePASVдавать возможностьPASVмодель。
  • когдаFTPИспользование сервераhttpsчас,SSLCheckServerIdentityПрименимый。По умолчанию,когда%Net.FtpSessionПримерподключиться кSSL/TLSсерверчас,Он проверяет, соответствует ли имя сервера Сертификата DNS-имени, используемому для подключения к серверу. Если эти имена не совпадают,Соединение не разрешено.

Чтобы отключить эту проверку,пожалуйста ВоляSSLCheckServerIdentityСвойство настроено на0。

  1. вызовConnect()способ подключения к определенномуFTPсервер。
  2. вызов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-сессии,Вот и всевызоввстреча话ПримеризметодвыполнитьFTPЗадача。%Net.FtpSessionПредоставьте следующие файлы для чтения и записи.изметод:

Delete()

Удалить файлы.

Retrieve()

Копирование файлов с FTP-сервера на InterSystems IRISв потоке,и возвращает поток по ссылке. Чтобы использовать этот поток,пожалуйстаиспользоватьстандартный потокметод:Write()WriteLine()Read()ReadLine()Rewind()MoveToEnd()иClear()。Достаточно хорошоиспользоватьпотокизSizeсвойство。

RetryRetrieve()

Разрешить извлечение файла продолжить,потому чтодля Данныйизпотокда由начальство一次использоватьRetrieve()создаватьиз。

Store()

Запишите содержимое потока IRIS в файл на FTP-сервере.

Append()

Добавляет содержимое потока в конец указанного файла.

Rename()

Переименуйте файл.

также,%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()методчасиспользоватьэтот链接поток。

Язык кода:javascript
копировать
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сервергенерироватьизперезвонить。Например,делая,Может предоставлять пользователям информацию о том, что сервер все еще обрабатывает большие переводы.,или разрешить пользователю прервать передачу.

Чтобы настроить обратные вызовы FTP:

  1. создавать%Net.FtpCallbackиз Подкласс。
  2. в этом подклассе,выполнитьRetrieveCallback()метод,Этот метод вызывается периодически при получении данных с FTP-сервера.
  3. БолеевыполнитьStoreCallback()метод,Этот метод вызывается периодически, когда данные Воля записываются на FTP-сервер.
  4. создаватьFTPвстреча话час(нравиться“Установить FTP-сессию”как сказано в),Воляперезвонить Свойство настроено наравныйиз Подкласс%Net.FtpCallback
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose