Download Objects
Download files from WAYSCloud Storage using GET requests. This guide covers direct downloads, streaming, range requests, and download URLs.
Endpoint
GET /v1/storage/{bucket}/{key}
Basic Download
cURL
curl -X GET "https://api.wayscloud.services/v1/storage/my-bucket/document.pdf" \
-H "Authorization: Bearer wayscloud_storage_abc123_YourSecretKey" \
-o document.pdf
Python
import requests
import os
API_KEY = os.getenv('WAYSCLOUD_API_KEY')
response = requests.get(
'https://api.wayscloud.services/v1/storage/my-bucket/document.pdf',
headers={'Authorization': f'Bearer {API_KEY}'}
)
# Save to file
with open('document.pdf', 'wb') as f:
f.write(response.content)
JavaScript
const axios = require('axios');
const fs = require('fs');
const response = await axios.get(
'https://api.wayscloud.services/v1/storage/my-bucket/document.pdf',
{
headers: { 'Authorization': `Bearer ${process.env.WAYSCLOUD_API_KEY}` },
responseType: 'arraybuffer'
}
);
fs.writeFileSync('document.pdf', response.data);
Streaming Download
import requests
import os
API_KEY = os.getenv('WAYSCLOUD_API_KEY')
# Stream large file
response = requests.get(
'https://api.wayscloud.services/v1/storage/my-bucket/large-video.mp4',
headers={'Authorization': f'Bearer {API_KEY}'},
stream=True
)
with open('large-video.mp4', 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
Range Requests
Download specific byte ranges:
# Download first 1MB
curl -X GET "https://api.wayscloud.services/v1/storage/my-bucket/large-file.zip" \
-H "Authorization: Bearer $WAYSCLOUD_API_KEY" \
-H "Range: bytes=0-1048575" \
-o first-megabyte.zip
Response Headers
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 1048576
ETag: "a1b2c3d4e5f6789"
Last-Modified: Mon, 04 Nov 2025 10:30:00 GMT
x-amz-meta-author: John Doe
Error Responses
404 Not Found
{"error": "Object not found", "code": "NO_SUCH_KEY"}
403 Forbidden
{"error": "API key does not have read permission"}