Skip to content

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.

ItemEURNOKSEKDKK
Object Storage Enterprise0.141.601.601.04
Object Storage Standard0.070.800.800.52

Metered usage

ItemUnitEURNOKSEKDKK
Object Storage (Pay-as-you-go)GB-month0.070.800.800.52
S3 Enterpriseper_gb_month0.141.601.601.04
S3 Standardper_gb_month0.070.800.800.52

View all plans in dashboard


How it works

  1. Create a bucket via the dashboard or API. Choose a name, tier, and visibility (public or private).
  2. Receive S3 credentials. The API returns an access key and secret key. The secret key is shown only once.
  3. Upload files using boto3, the AWS CLI, or any S3 client. Point it at https://storage.wayscloud.services.
  4. Access files via direct S3 GetObject calls, or generate presigned URLs for time-limited access.
  5. 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

  1. Open my.wayscloud.services and go to Data & Storage then Object Storage
  2. Click Create Bucket
  3. Enter a bucket name (e.g., media-uploads-prod), select Standard tier, and Private visibility
  4. Click Create and copy your S3 credentials immediately

API

bash
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

bash
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:

json
{
  "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:

python
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

  • 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

Open in dashboard

WAYSCloud AS