A containerized API service for interacting with Akave's decentralized storage network.
docker pull akave/akavelink:latest
Contact Akave team to receive your dedicated node address.
docker run -d \
-p 8000:3000 \
-e NODE_ADDRESS="your_node_address" \
-e PRIVATE_KEY="your_private_key" \
akave/akavelink:latest
Variable | Description | Required | Default |
---|---|---|---|
NODE_ADDRESS | Akave node address | Yes | "" |
PRIVATE_KEY | Your Akave private key | Yes | "" |
PORT | API server port | No | 3000 |
NODE_ADDRESS: connect.akave.ai:5500
Expose the spawned api to the web (Note: This will make your data public and accesible through web make sure you know what you're doing)
Install Ngrok
Run the following command to expose the api to the web
ngrok http 8000
Install Cloudflare Tunnel
Run the following command to expose the api to the web
cloudflared tunnel --url http://localhost:8000
Step 1: Install Docker on your VPS
Step 2: Pull the Akavelink docker image
docker pull akave/akavelink:latest
Step 3: Run the following command to expose the api to the web
docker run -d \
-p 8000:3000 \
-e NODE_ADDRESS="your_node_address" \
-e PRIVATE_KEY="your_private_key" \
akave/akavelink:latest
Step 4: Expose the port 8000 to the web
Step 5: Access the api using the public url http://your_public_ip:8000
POST /buckets
Create a new bucket for file storage.
Request Body:
{
"bucketName": "string"
}
Response:
{
"success": true,
"data": {
"Name": "string",
"Created": "timestamp"
}
}
GET /buckets
Retrieve a list of all buckets.
Response:
{
"success": true,
"data": [
{
"Name": "string",
"Created": "timestamp"
}
]
}
GET /buckets/:bucketName
Get details of a specific bucket.
Response:
{
"success": true,
"data": {
"Name": "string",
"Created": "timestamp"
}
}
GET /buckets/:bucketName/files
List all files in a specific bucket.
Response:
{
"success": true,
"data": [
{
"Name": "string",
"Size": "number",
"Created": "timestamp"
}
]
}
GET /buckets/:bucketName/files/:fileName
Get metadata about a specific file.
Response:
{
"success": true,
"data": {
"Name": "string",
"Size": "number",
"Created": "timestamp"
}
}
POST /buckets/:bucketName/files
Upload a file to a specific bucket.
Request:
- Content-Type:
multipart/form-data
- Body:
file
orfile1
: File to upload ORfilePath
: Path to file on server
Response:
{
"success": true,
"data": {
"Name": "string",
"Size": "number",
"Hash": "string"
}
}
GET /buckets/:bucketName/files/:fileName/download
Download a file from a specific bucket.
Usage: Access this URL directly in your browser to download the file. The file will be automatically downloaded with its original filename.
Response:
- Success: File download will begin automatically
- Error:
{
"success": false,
"error": "error message"
}
All endpoints will return the following format for errors:
{
"success": false,
"error": "error message"
}