Xeonr Developer Docs

List Objects For S3

POST
/uplim.api.v1.InternalPortalService/ListObjectsForS3

Backs S3 ListObjectsV2 for a bucket: a flat recursive listing, or directory mode (delimiter "/") with common prefixes interleaved in lexicographic key order. max_keys of 0 or above 1000 falls back to 1000; continuation_token is the last key of the previous page. Requires a live, enabled verified_access_key_id that covers the bucket; otherwise, or for an unknown bucket, the response carries denied. Any delimiter other than "" or "/" is rejected with InvalidArgument. Virtual-file folder contents are omitted.

Access: internal only — the portal worker, authenticated by the shared X-Upl-Internal-Token header matching S3_CREDENTIALS_INTERNAL_TOKEN (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

AuthorizationBearer <token>

JWT access token obtained via OAuth2 flow or service account

In: header

Header Parameters

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

bucketRef?&
verifiedAccessKeyId?string

Required: only SigV4-verified access keys may list. The api recomputes the key's authority over the bucket.

Length1 <= length
prefix?string

S3 key prefix filter (no leading slash). Empty = whole bucket.

Lengthlength <= 1024
delimiter?string

"" (flat/recursive) or "/" (directory mode: immediate children + common prefixes). Other delimiters are not supported.

Lengthlength <= 1
maxKeys?integer

1-1000; defaults to 1000.

Formatint32
Range0 <= value <= 1000
continuationToken?string

Opaque keyset cursor from a previous page's next_continuation_token.

Lengthlength <= 2048
[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.InternalPortalService/ListObjectsForS3" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/json" \  -d '{}'
{
  "denied": {
    "reason": "REASON_UNSPECIFIED"
  },
  "objects": [
    {
      "key": "string",
      "sizeBytes": "string",
      "updatedAt": "2023-01-15T01:30:15.01Z",
      "uploadId": "string"
    }
  ],
  "commonPrefixes": [
    "string"
  ],
  "isTruncated": true,
  "nextContinuationToken": "string"
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}