Кросс-платформенное решение для прямой выгрузки заказов из облачного хранилища S3 — различия между версиями

Материал из PODS Wiki
Перейти к: навигация, поиск
(Новая страница: «h1. Выгрузка проектов из Azure Blob Для настройки выгрузки из AzureBlob нужно выполнить следующие…»)
 
Строка 1: Строка 1:
h1. Выгрузка проектов из Azure Blob
+
В рамках техпроцесса выгрузки готовых к печати заказов выполняются две группы операций -
 +
 
 +
1) рендеринг проекта пользователя в печатный формат (PDF/JPEG/etc...)
 +
2) выгрузка файлов для печати на сервер печатного дома.
 +
 
 +
Операция №2 - т.е. выгрузка файлов на сервер, в стандартном исполнении происходит с использованием FTP протокола. Это классический, надежный протокол, однако при выгрузке большого количества заказов/файлов, общая скорость выгрузки может быть недостаточно быстрой. Для крупных печатных домов, с большим количеством обрабатываемых заказов, предложено кросс-платформенное решение для прямой выгрузки файлов из облачного хранилища PrintOnDemandSolution AzureBlob.
  
 
Для настройки выгрузки из AzureBlob нужно выполнить следующие действия:
 
Для настройки выгрузки из AzureBlob нужно выполнить следующие действия:
# На сервере WL необходимо установить .NET Core Runtime. Инструкция по установке для разных ОС https://www.microsoft.com/net/download/core
+
 
# Необходим на сервере WL разместить ПО для загрузки файлов из Azure. Ссылка для скачивания http://redmine.avermaster.ru/attachments/download/7987/PodsDownloader.rar
+
* На сервере печатного дома необходимо установить следующее программное обеспечение
** Распаковать архив в директорию на сервере WL
+
** .NET Core Runtime. Инструкция по установке для разных ОС https://www.microsoft.com/net/download/core
** В файле settings.json нужно прописать:
+
** PrintOnDemandSolution AzureBlob Downloader [ссылка] для загрузки файлов из Azure.  
*** DownloadPath - директория в которую будут загружаться скачанные файлы (должна быть доступна на запись пользователю от имени которого работает web-сервер)
+
 
*** DownloadLimit - максимальное количество потоков загрузки
+
Порядок установки PrintOnDemandSolution AzureBlob Downloader:
*** PodsUrl - ссылка на титульную страницу PODS-сайта WL  
+
 
*** SecretKey - секретный ключ для входящих запросов
+
*** Распаковать архив в директорию на сервере печатного
** В файле NLog.config нужно прописать путь, куда будут сохранятся логи загрузчика. Level на этапе отладки лучше оставить на уровне Debug, потом можно будет поменять на Error чтобы не засорять сильно сервер
+
*** В файле settings.json нужно прописать:
# Необходимо на сервер WL разместить скрипт, который будет обрабатывать запросы из "API уведомления об ренеринге":http://redmine.avermaster.ru/projects/wl/wiki/API#Уведомление-об-рендеринге-для-выгрузки-из-Blob-Azure и запускать GJ Для выгрузки, передавай ему ID заказа в качестве параметра. Команда для запуска "dotnet PodsDownloader.dll {orderId}".
+
**** DownloadPath - директория в которую будут загружаться скачанные файлы (должна быть доступна на запись пользователю от имени которого работает web-сервер)
 +
**** DownloadLimit - максимальное количество потоков загрузки  
 +
**** PodsUrl - ссылка на титульную страницу PODS-сайта WL  
 +
**** SecretKey - секретный ключ для входящих запросов
 +
**** В файле NLog.config нужно прописать путь, куда будут сохранятся логи загрузчика. Level на этапе отладки лучше оставить на уровне Debug, потом можно будет поменять на Error, чтобы не засорять сильно сервер.
 +
 
 +
Скрипт для работы с API PODS
 +
 
 +
** На веб-сервер печатного дома необходимо разместить скрипт, который будет обрабатывать уведомления платформы PODS о завершении рендеринга. [[API#Уведомление о завершении рендеринга проекта (для выгрузки из Blob Azure)]]
 +
** Для старта выгрузки, надо передавать приложению ID заказа в качестве параметра. Команда для запуска "dotnet PodsDownloader.dll {orderId}".
 +
 
 
Пример скрипта в приложении (pods.php)
 
Пример скрипта в приложении (pods.php)
# В админке WL прописать "Адрес API для уведомления об успешном рендеринге" в настойках интеграции и выбрать тип выгрузки "AzureBlob" в справочнике FTP
+
 
 +
Настройка выгрузки в панели управления PODS
 +
 
 +
** В разделе панели управления Справочник FTP создать новую запись, выбрать тип выгрузке "AzureBlob", задать произвольное название для данного сервера выгрузки.
 +
** В разделе панели управления Настройки - Интеграция - в поле "Адрес API для уведомления об успешном рендеринге" прописать
 +
** В настройках продуктов/форматов книг указать созданный ранее AzureBlob сервер выгрузки.

Версия 15:03, 23 августа 2017

В рамках техпроцесса выгрузки готовых к печати заказов выполняются две группы операций -

1) рендеринг проекта пользователя в печатный формат (PDF/JPEG/etc...) 
2) выгрузка файлов для печати на сервер печатного дома.

Операция №2 - т.е. выгрузка файлов на сервер, в стандартном исполнении происходит с использованием FTP протокола. Это классический, надежный протокол, однако при выгрузке большого количества заказов/файлов, общая скорость выгрузки может быть недостаточно быстрой. Для крупных печатных домов, с большим количеством обрабатываемых заказов, предложено кросс-платформенное решение для прямой выгрузки файлов из облачного хранилища PrintOnDemandSolution AzureBlob.

Для настройки выгрузки из AzureBlob нужно выполнить следующие действия:

  • На сервере печатного дома необходимо установить следующее программное обеспечение
    • .NET Core Runtime. Инструкция по установке для разных ОС https://www.microsoft.com/net/download/core
    • PrintOnDemandSolution AzureBlob Downloader [ссылка] для загрузки файлов из Azure.

Порядок установки PrintOnDemandSolution AzureBlob Downloader:

      • Распаковать архив в директорию на сервере печатного
      • В файле settings.json нужно прописать:
        • DownloadPath - директория в которую будут загружаться скачанные файлы (должна быть доступна на запись пользователю от имени которого работает web-сервер)
        • DownloadLimit - максимальное количество потоков загрузки
        • PodsUrl - ссылка на титульную страницу PODS-сайта WL
        • SecretKey - секретный ключ для входящих запросов
        • В файле NLog.config нужно прописать путь, куда будут сохранятся логи загрузчика. Level на этапе отладки лучше оставить на уровне Debug, потом можно будет поменять на Error, чтобы не засорять сильно сервер.

Скрипт для работы с API PODS

Пример скрипта в приложении (pods.php)

Настройка выгрузки в панели управления PODS

    • В разделе панели управления Справочник FTP создать новую запись, выбрать тип выгрузке "AzureBlob", задать произвольное название для данного сервера выгрузки.
    • В разделе панели управления Настройки - Интеграция - в поле "Адрес API для уведомления об успешном рендеринге" прописать
    • В настройках продуктов/форматов книг указать созданный ранее AzureBlob сервер выгрузки.