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
- Log in to WAYSCloud Console
- Navigate to API Keys
- Click Create New Key
- Select Storage service
- 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:
- 📧 Email: support@wayscloud.services
- 💬 Mattermost Chat
- 📚 Full API Reference