Object Storage (S3)
S3-compatible object storage hosted in Norway. Create buckets, upload files, and generate presigned URLs using any S3 client library.
Best for: application backends that need file storage, static asset hosting, and backup archives.
Create a bucket | Storage API reference
What this is
WAYSCloud Object Storage gives you private S3-compatible buckets with an endpoint at storage.wayscloud.services. Every bucket is created in the no-oslo-1 region (Oslo, Norway). You interact with it using the same tools you already know: boto3, the AWS CLI, s3cmd, or any library that speaks the S3 protocol. The WAYSCloud API handles bucket creation and credential management, and from there you use standard S3 operations for uploads, downloads, and presigned URLs.
Storage scales automatically. There is no capacity to plan and no minimum commitment.
When to use it
Use this when:
- Your application needs to store and retrieve files (images, documents, backups, logs)
- You need presigned URLs for secure, time-limited downloads
- You want S3 compatibility so existing code works without changes
- You need public buckets for static asset hosting
Consider something else when:
- You need file sync and collaboration across users — use WAYSCloud Drive
- You need structured data with queries — use Databases
- You need a simple key-value cache — use Redis
What you get
- S3-compatible endpoint at
https://storage.wayscloud.services - Two tiers: Standard (shared infrastructure) and Enterprise (dedicated infrastructure)
- Public or private buckets with per-bucket access control
- Presigned URLs for secure, expiring download and upload links
- Dashboard file browser to upload, download, and delete objects directly
- API key per bucket with access key and secret key
- No egress fees within the WAYSCloud network
Pricing
All prices exclude VAT.
| Item | EUR | NOK | SEK | DKK |
|---|---|---|---|---|
| Object Storage Enterprise | 0.14 | 1.60 | 1.60 | 1.04 |
| Object Storage Standard | 0.07 | 0.80 | 0.80 | 0.52 |
Metered usage
| Item | Unit | EUR | NOK | SEK | DKK |
|---|---|---|---|---|---|
| Object Storage (Pay-as-you-go) | GB-month | 0.07 | 0.80 | 0.80 | 0.52 |
| S3 Enterprise | per_gb_month | 0.14 | 1.60 | 1.60 | 1.04 |
| S3 Standard | per_gb_month | 0.07 | 0.80 | 0.80 | 0.52 |
How it works
- Create a bucket via the dashboard or API. Choose a name, tier, and visibility (public or private).
- Receive S3 credentials. The API returns an access key and secret key. The secret key is shown only once.
- Upload files using boto3, the AWS CLI, or any S3 client. Point it at
https://storage.wayscloud.services. - Access files via direct S3
GetObjectcalls, or generate presigned URLs for time-limited access. - Monitor usage in the dashboard: object count, total size, and cost per bucket.
What you see in the dashboard
- Bucket list with name, object count, total size, tier, and creation date
- File browser per bucket: upload, download, rename, and delete objects
- Usage summary: total storage consumed across all buckets
- Credentials panel: access key visible at all times, secret key shown only at creation
- Tier badge: Standard or Enterprise per bucket
Fastest way to get started
Dashboard
- Open my.wayscloud.services and go to Data & Storage then Object Storage
- Click Create Bucket
- Enter a bucket name (e.g.,
media-uploads-prod), select Standard tier, and Private visibility - Click Create and copy your S3 credentials immediately
API
curl -X POST https://api.wayscloud.services/v1/storage/buckets \
-H "X-API-Key: wayscloud_s3_abc12_YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"bucket_name": "media-uploads-prod",
"tier": "standard",
"is_public": false
}'Example request and response
Request: Create a bucket
curl -X POST https://api.wayscloud.services/v1/storage/buckets \
-H "X-API-Key: wayscloud_s3_abc12_YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"bucket_name": "customer-invoices",
"tier": "enterprise",
"is_public": false
}'Response:
{
"success": true,
"bucket_name": "customer-invoices",
"endpoint": "https://storage.wayscloud.services",
"region": "no-oslo-1",
"tier": "enterprise",
"access_key": "wc_s3_f8a21bc93e47",
"secret_key": "wc_secret_k9x2m4p7r1t6..."
}Upload a file with boto3:
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://storage.wayscloud.services",
aws_access_key_id="wc_s3_f8a21bc93e47",
aws_secret_access_key="wc_secret_k9x2m4p7r1t6..."
)
s3.upload_file("invoice-2026-03.pdf", "customer-invoices", "2026/03/invoice-2026-03.pdf")
url = s3.generate_presigned_url(
"get_object",
Params={"Bucket": "customer-invoices", "Key": "2026/03/invoice-2026-03.pdf"},
ExpiresIn=3600
)WARNING
The secret_key is shown only once at bucket creation. Store it securely.
Common use cases
- Application file uploads — profile photos, user documents, form attachments
- Static asset hosting — public buckets for images, CSS, and JavaScript served via presigned URLs
- Backup and archival — database dumps, log archives, compliance snapshots
- Media storage — video files, podcast episodes, large binary assets
- Data pipeline staging — intermediate files between processing steps
Related services
- WAYSCloud Drive — file sync and collaboration for teams
- Databases — managed PostgreSQL and MariaDB for structured data
- App Platform — deploy apps that read from your buckets
- VPS — virtual machines with direct S3 access over the internal network
Related documentation
- Store Files — step-by-step integration guide
- Storage API reference — all 6 endpoints
- Drive vs Storage — when to use which
- API Keys — managing API credentials
- Getting Started — platform overview