Description
Starts a direct upload: for a workspace whose package store is in a region, the server returns a short-lived, write-only URL that points straight at that region's blob storage, so your CI uploads the bytes without routing them through the Jaws web app. For every other workspace the server returns mode legacy, and you fall back to the classic multipart upload.
A direct upload is three plain HTTPS calls, no SDK required:
POST /api/packagestore/package/negotiate(this endpoint) with the workspace and file name. If the responsemodeisdirect, take the returneduploadUrl.PUTthe raw file bytes to thatuploadUrl, adding the headerx-ms-blob-type: BlockBlob(the one Azure-ism). The blob lands in a private pending/quarantine path and is not part of the feed yet.POST /api/packagestore/package/confirmto validate and promote it - see Confirm a direct upload.
The upload URL is scoped to a single blob, is write-only, and expires after 4 hours. It is never logged or stored. Nothing is downloadable until you call confirm.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
WorkspaceId |
body | string | yes | ID of the destination workspace. |
FileName |
body | string | yes | Package file name including ID, version and extension, e.g. Acme.Web.2.5.3.zip. |
Errors
| Status | Meaning |
|---|---|
400 |
Invalid WorkspaceId, or a FileName that doesn't match the <PackageId>.<Version>.<ext> pattern. |
401 |
Missing or invalid Basic auth credentials, or the service account lacks permission to push packages to this workspace. |