Загрузка через API
API позволяет полностью автоматизировать загрузку билдов.
Процесс загрузки
- Получите presigned URL для загрузки
- Загрузите файл по URL
- Подтвердите загрузку
Шаг 1: Получение URL
curl -X POST "https://api.getuply.io/api/app-distribution/{projectId}/{appId}/builds/upload-link" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "fileName": "app-release.apk", "fileSize": 15728640 }'Ответ:
{ "uploadUrl": "https://storage.getuply.io/...", "buildId": "build_abc123", "expiresAt": "2024-01-15T12:00:00Z"}Шаг 2: Загрузка файла
curl -X PUT "$UPLOAD_URL" \ -H "Content-Type: application/octet-stream" \ --data-binary @app-release.apkШаг 3: Подтверждение
curl -X POST "https://api.getuply.io/api/app-distribution/{projectId}/{appId}/builds/verify" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "buildId": "build_abc123", "notes": "Release notes" }'Полный пример (bash)
#!/bin/bashset -e
PROJECT_ID="proj_xxx"APP_ID="app_xxx"FILE_PATH="./app-release.apk"TOKEN="your_jwt_token"
# 1. Получаем URLRESPONSE=$(curl -s -X POST \ "https://api.getuply.io/api/app-distribution/$PROJECT_ID/$APP_ID/builds/upload-link" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{\"fileName\": \"$(basename $FILE_PATH)\", \"fileSize\": $(stat -f%z $FILE_PATH)}")
UPLOAD_URL=$(echo $RESPONSE | jq -r '.uploadUrl')BUILD_ID=$(echo $RESPONSE | jq -r '.buildId')
# 2. Загружаем файлcurl -X PUT "$UPLOAD_URL" \ -H "Content-Type: application/octet-stream" \ --data-binary @$FILE_PATH
# 3. Подтверждаемcurl -X POST \ "https://api.getuply.io/api/app-distribution/$PROJECT_ID/$APP_ID/builds/verify" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{\"buildId\": \"$BUILD_ID\"}"
echo "Build uploaded successfully!"Ошибки
| HTTP код | Описание |
|---|---|
| 401 | Неверный или истёкший токен |
| 403 | Нет прав на проект/приложение |
| 404 | Проект или приложение не найдены |
| 413 | Файл слишком большой |
| 422 | Ошибка валидации |
Подробнее в API Reference.