ADN Open CIS
Сообщество программистов Autodesk в СНГ

31/07/2019

Руководство по Design Automation для 3Ds Max: 3. Подготовка хранилища в облаке

Содержание

1. Авторизация

2. Создание Activity

3. Подготовка хранилища в облаке

4. Запуск workitem

5. Загрузка результатов выполнения задачи

Краткое описание

Для исходных данных и результатов выполняемых Design Automation API задач необходимо предоставить описание HTTP-запросов, которые выполнит сервис для из загрузки. Простым способом может быть создание signed url, которые будут использованы данным API. В этом примере мы будем использовать OSS Forge Data Management API для сохранения исходных данных и результатов выполнения задач. Мы создадим signed url, которые будем использовать в следующей части руководства по запуску workitem-ов. Если Вы предпочитаете другие облачные решения для хранения данных, Вы можете перейти в следующей статье.

Результатом выполнения данной части руководства будут временные signed url-ы, два для загрузки сервисом Design Automation исходного zip-архива и скрипта 3Ds Max, один для загрузки результатов выполнения задачи.

Используемые API

Базовый URL: https://developer.api.autodesk.com/oss/v2

1. Создание bucket-а в OSS - URL конечной точки - /buckets, метод POST

2. Загрузка объекта в OSS - URL конечной точки - /buckets/:bucketKey/objects/:objectName, метод PUT

3. Создание signed url - URL конечной точки - /buckets/:bucketKey/objects/:objectName/signed, метод PUT

Подробное описание доступно здесь.

Шаг 1. Создание bucket-а

Первым шагом при работе с сервисом OSS будет создание bucket-а. После того, как он создан, мы сможем сохранять в нём объекты. Больше информации о сервисе OSS можно найти в документации в разделе OSS. Запрос:

Код - HTML: [Выделить]
  1. curl -X POST  'https://developer.api.autodesk.com/oss/v2/buckets'  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'  -H 'Content-Type: application/json'  -d '{
  2.             "bucketKey": "YOUR_BUCKET_KEY",
  3.             "access": "full",
  4.             "policyKey": "temporary"
  5.         }'

Примечания: Вам нужно выбрать имя Вашего bucket-а. Оно должно быть уникально в рамках всего сервиса

Ответ сервиса:

Код - JavaScript: [Выделить]
  1. {
  2.     "bucketKey": "YOUR_BUCKET_KEY",
  3.     "bucketOwner": "YOUR_FORGE_APP_CLIENT_ID",
  4.     "createdDate": 156095829931,
  5.     "permissions": [
  6.         {
  7.             "authId": "T05H372IE11Kmkksdh73ndj0qie2f6nib",
  8.             "access": "full"
  9.         }
  10.     ],
  11.     "policyKey": "temporary"
  12. }

Шаг 2. Загрузка исходных файлов в OSS

После успешного создания bucket-а становится доступной загрузка исходных файлов. Повторите этот шаг дважды для того, чтобы загрузить исходные zip-архив и скрипт 3Ds Max. Запрос:

Код - HTML: [Выделить]
  1. curl -X PUT  'https://developer.api.autodesk.com/oss/v2/buckets/YOUR_BUCKET_KEY/objects/YOUR_OBJECT_KEY'  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'  -H 'accept-encoding: gzip, deflate'  --data-binary '@PATH_TO_YOUR_FILE_TO_UPLOAD'

Примечания:

  • замените PATH_TO_YOUR_FILE_TO_UPLOAD путём к исходному файлу на Вашем компьютере
  • обратите особое внимание на url запроса, где нужно заменить YOUR_BUCKET_KEY именем Вашего bucket-а, созданного на предыдущем шаге. Вам также следует назначить YOUR_OBJECT_KEY для каждого загружаемого Вами файла

Ответ сервиса:

Код - JavaScript: [Выделить]
  1. {
  2.     "bucketKey": "YOUR_BUCKET_KEY",
  3.     "objectId": "urn:adsk.objects:os.object:YOUR_BUCKET_KEY/YOUR_OBJECT_KEY",
  4.     "objectKey": "YOUR_OBJECT_KEY",
  5.     "sha1": "1e0c312608ece2a21d6ecd3c316e40ebec574011",
  6.     "size": 55998,
  7.     "contentType": "text/plain",
  8.     "location": "https://developer.api.autodesk.com/oss/v2/buckets/YOUR_BUCKET_KEY/objects/YOUR_OBJECT_KEY"
  9. }

Шаг 3. Получение временных URL для загрузки данных сервисом Design Automation

Следующий шаг - создание временных URL для объектов, созданных на предыдущем шаге. Эти URL будут далее использоваться сервисом Design Automation для загрузки исходных файлов, поэтому сохраните где-нибудь результаты запросов, мы будем использовать их при запуске workitem-ов, в следующей части руководства. Также как и на 2 шаге, Вам следует повторить запрос дважды для исходных zip-архива и скрипта 3Ds Max:

Код - HTML: [Выделить]
  1. curl -X POST  'https://developer.api.autodesk.com/oss/v2/buckets/YOUR_BUCKET_KEY/objects/YOUR_OBJECT_KEY/signed'  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'  -H 'Content-Type: application/json'  -d '{}'

Примечание: обратите особое внимание на URL, где Вам необходимо заменить YOUR_BUCKET_KEY и YOUR_OBJECT_KEY, которые Вы использовали в предыдущих шагах руководства.

Пример ответа сервера:

Код - JavaScript: [Выделить]
  1. curl -X POST  'https://developer.api.autodesk.com/oss/v2/buckets/YOUR_BUCKET_KEY/objects/YOUR_OBJECT_KEY/signed?access=readwrite'  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'  -H 'Content-Type: application/json'  -d '{}'

Назад к созданию Activity

Читать далее о запуске workitem-а

Источник: https://forge.autodesk.com/en/docs/design-automation/v3/tutorials/3dsmax/task-3-manage-cloud-storage/
Автор перевода: Александр Игнатович
Опубликовано 31.07.2019