usage), whether it is temporary data (temp), and optional sub-path (path); platform returns a set of short-term valid OSS / S3 credentials + Object Key Prefix that must be followed. After obtaining credentials, client directly uploads using object storage SDK; platform does not relay file stream.[temp/]fh/projects/{Project UUID}/{Business Module Identifier}[/{Custom Sub-path}]; .., //, leading/trailing / in caller-provided path are cleaned to prevent unauthorized writing to other projects' directories.usage must be in server whitelist; currently only alert-pdf-share is open; new business modules require contacting platform to extend whitelist.{
"temp": false,
"usage": "alert-pdf-share",
"path": "2026/06/incident-9527"
}curl --location '/openapi/v2.0/storage/api/v1/projects/5dff27bd-693c-4ace-979d-e26e920d497a/custom-sts' \
--header 'x-user-token;' \
--header 'x-user-token;' \
--header 'X-Project-Uuid;' \
--header 'X-Request-Id;' \
--header 'X-Request-Id;' \
--header 'Content-Type: application/json' \
--data '{
"temp": false,
"usage": "alert-pdf-share",
"path": "2026/06/incident-9527"
}'{
"code": 0,
"message": "OK",
"data": {
"provider": "ali",
"region": "cn-hangzhou",
"bucket": "your-deployment-bucket",
"endpoint": "oss-cn-hangzhou.aliyuncs.com",
"object_key_prefix": "fh/projects/5dff27bd-693c-4ace-979d-e26e920d497a/alert-pdf-share/2026/06/incident-9527",
"credentials": {
"access_key_id": "STS.NTabcdefg",
"access_key_secret": "EXAMPLEKEY",
"security_token": "sts.token.example",
"expire": 3600,
"platform": 0
}
}
}