---
title: "Upload Callback"
method: POST
path: "/openapi/v2.0/open_model/stores/upload_callback"
tags: ["Open Modeling"]
---

# Upload Callback

`POST /openapi/v2.0/open_model/stores/upload_callback`

## Request

- Base URL: `` (relative, and it does not resolve against the document’s source URL)
- URL: `/openapi/v2.0/open_model/stores/upload_callback`
- Auth: none required

Upload callback, used to notify which file resources need to be copied after files are uploaded.
To avoid interface timeouts, up to 100 files are supported per request. You can split requests using the same resource_uuid, but re-uploading the same file consumes additional resources, and concurrent uploads are strongly discouraged.

**Note**
etag is the hash value assigned by the bucket to a file, used to verify file integrity.
Example (Go code):
```go
meta, _ := bucket.GetObjectDetailedMeta(key)
etag := strings.Trim(meta.Get("ETag"), "\"")
```

## Headers

- `X-Request-Id` string, uuid
- `X-User-Token` string, required
- `X-Language` string

## Request body

- object
  - `resource_uuid` string, required: Resource UUID, creates new resource when not exists
  - `resource_name` string: Max 255 characters
  - `callback_param` string, required: Callback Parameters Returned When Getting Token
  - `files` object[], required: Up to 100 files per request
    - `name` string, required: Uploaded File Name
    - `etag` string, required: File ETag, used to verify file integrity

## Response `200`

- object
  - `code` integer, required: Business status code, 0 means success
  - `message` string, required: Business Message
  - `data` object, required: Business Data
    - `resource_uuid` string, required: Resource UUID
    - `upload_count` integer, required: Number of Files Successfully Uploaded This Time
    - `file_name_list` string[], required: List of File Names Successfully Uploaded This Time

## Other responses

- `400`: Invalid request parameters (incorrect format, missing required fields, etc.)
- `401`: Authentication failed (token invalid or expired)
- `403`: Insufficient permission (token does not have the corresponding permission in this project/organization)
- `500`: Server Internal Error

---

[API](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-public-cloud.md) - [All operations](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-public-cloud/llms.txt) - [OpenAPI document](https://skmtc.dev/dji/apis/flighthub-2-openapi-v2-0-public-cloud/revisions/aeef0010be34?raw)
