Objects
objects is Skippr Cloud object storage: create buckets and read/write objects through Cloud APIs. Data lands on the platform object backend; you never hold root partner credentials.
Status: Preview — CreateBucket, Put/Get/Head/DeleteObject, ListBuckets, ListObjectsV2, DeleteBucket, multipart upload, and SigV4 query-string presigned URLs via gateway.
Concepts
| Term | Meaning |
|---|---|
| Bucket | Named container in your account |
| Object | Key + bytes (+ metadata) |
| Multipart | Upload large objects in parts, then complete |
| Presigned URL | Time-limited GET/PUT URL signed with your Cloud credentials |
Access
| Hostname | objects.cloud.skippr.io / objects.eu-central-1.cloud.skippr.io |
| Compat | S3-shaped HTTP paths (SigV4 service s3) |
| Auth | Cloud credentials via gateway (header or query-string SigV4) |
| Region | eu-central-1 |
Quickstart
# Create bucket + put object
curl -X PUT "https://objects.cloud.skippr.io/my-app" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK"
curl -X PUT "https://objects.cloud.skippr.io/my-app/hello.txt" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK" \
-H "content-type: text/plain" -d "hello"
# List + get
curl "https://objects.cloud.skippr.io/?list" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK"
# or: GET / → ListBuckets JSON
curl "https://objects.cloud.skippr.io/my-app?list-type=2&prefix=hel" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK"
curl "https://objects.cloud.skippr.io/my-app/hello.txt" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK"Multipart
# 1) Initiate
curl -X POST "https://objects.cloud.skippr.io/my-app/large.bin?uploads" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK"
# → UploadId in XML
# 2) Upload parts
curl -X PUT "https://objects.cloud.skippr.io/my-app/large.bin?partNumber=1&uploadId=$UPLOAD_ID" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK" --data-binary @part1.bin
# 3) Complete (XML body lists PartNumber + ETag)
curl -X POST "https://objects.cloud.skippr.io/my-app/large.bin?uploadId=$UPLOAD_ID" \
--aws-sigv4 "aws:amz:eu-central-1:s3" -u "$AK:$SK" \
-H "content-type: application/xml" -d @complete.xmlAbort with DELETE /{bucket}/{key}?uploadId=….
Presigned URLs
Mint a standard S3 query-string SigV4 URL (X-Amz-Algorithm, X-Amz-Credential, X-Amz-Date, X-Amz-Expires, X-Amz-SignedHeaders, X-Amz-Signature) against the objects hostname with your Cloud access key. The gateway accepts query auth for GET/PUT without an Authorization header. Max expiry is 7 days.
Use an AWS SDK or SigV4 client against the hostname above (same credential model as other Cloud services).
Operations
| Operation | Notes |
|---|---|
| CreateBucket | PUT /{bucket} |
| DeleteBucket | DELETE /{bucket} (must be empty) |
| ListBuckets | GET / |
| PutObject / GetObject | Bytes round-trip |
| HeadObject | Metadata without body |
| DeleteObject | Remove one key |
| ListObjectsV2 | GET /{bucket}?list-type=2&prefix= |
| CreateMultipartUpload | POST /{bucket}/{key}?uploads |
| UploadPart | PUT …?partNumber=&uploadId= |
| CompleteMultipartUpload | POST …?uploadId= + parts XML |
| AbortMultipartUpload | DELETE …?uploadId= |
| PresignedUrl | Query-string SigV4 on object paths |
Limits & errors
- Non-empty DeleteBucket → 400
- Missing bucket/object → 404
- Duplicate CreateBucket → 409
- Expired or invalid presign → 401 at gateway
