Skip to main content

Storage API Overview

WAYSCloud Storage API provides S3-compatible object storage with automatic encryption, usage tracking, and quota management.

Key Features

  • 🔐 S3-Compatible - Works with AWS SDK, boto3, s3cmd, and any S3 client
  • 🔒 Automatic Encryption - AES-256 encryption at rest for all objects
  • 📊 Usage Tracking - Real-time tracking for billing and analytics
  • 🎯 Quota Management - Per-bucket storage limits and monitoring
  • 🌍 High Availability - Redundant storage with automatic backup

Base URL

https://api.wayscloud.services/v1/storage

Authentication

All requests require a valid API key in the Authorization header:

Authorization: Bearer wayscloud_s3_prod_YOUR_API_KEY_HERE

Get Your API Key

  1. Log in to WAYSCloud Console
  2. Navigate to API Keys
  3. Click Create New Key
  4. Select Storage service
  5. Copy your API key (starts with wayscloud_s3_prod_)
warning

Store your API key securely! It provides full access to your storage buckets.

Quick Start

Using cURL

# List your buckets
curl -X GET https://api.wayscloud.services/v1/storage/ \
-H "Authorization: Bearer wayscloud_s3_prod_YOUR_API_KEY"

# Upload a file
curl -X PUT https://api.wayscloud.services/v1/storage/my-bucket/my-file.txt \
-H "Authorization: Bearer wayscloud_s3_prod_YOUR_API_KEY" \
-H "Content-Type: text/plain" \
--data "Hello, WAYSCloud!"

# Download a file
curl -X GET https://api.wayscloud.services/v1/storage/my-bucket/my-file.txt \
-H "Authorization: Bearer wayscloud_s3_prod_YOUR_API_KEY"

Using Python (boto3)

import boto3
from botocore.client import Config

# Configure S3 client for WAYSCloud
s3 = boto3.client(
's3',
endpoint_url='https://api.wayscloud.services/v1/storage',
aws_access_key_id='wayscloud',
aws_secret_access_key='wayscloud_s3_prod_YOUR_API_KEY',
config=Config(signature_version='s3v4')
)

# List buckets
response = s3.list_buckets()
for bucket in response['Buckets']:
print(f"Bucket: {bucket['Name']}")

# Upload file
s3.upload_file('local-file.txt', 'my-bucket', 'remote-file.txt')

# Download file
s3.download_file('my-bucket', 'remote-file.txt', 'downloaded-file.txt')

Using Node.js (AWS SDK)

const AWS = require('aws-sdk');

// Configure S3 client
const s3 = new AWS.S3({
endpoint: 'https://api.wayscloud.services/v1/storage',
accessKeyId: 'wayscloud',
secretAccessKey: 'wayscloud_s3_prod_YOUR_API_KEY',
s3ForcePathStyle: true,
signatureVersion: 'v4'
});

// List buckets
s3.listBuckets((err, data) => {
if (err) console.error(err);
else console.log('Buckets:', data.Buckets);
});

// Upload file
const fs = require('fs');
const fileContent = fs.readFileSync('file.txt');

s3.putObject({
Bucket: 'my-bucket',
Key: 'file.txt',
Body: fileContent
}, (err, data) => {
if (err) console.error(err);
else console.log('Upload successful:', data);
});

Rate Limits

  • 1000 requests/minute per API key
  • 50GB max file size per upload
  • Burst: Up to 100 additional requests in short bursts

Next Steps

  • Authentication (coming soon) - Detailed authentication setup
  • Buckets (coming soon) - Create and manage buckets
  • Objects (coming soon) - Upload, download, and manage files
  • Examples (coming soon) - More code examples in different languages

Support

Need help? Contact us: