Quickstart
This guide walks you through creating an account, setting up credentials, and uploading your first object. Choose the path that fits your workflow.
1. Create your account
- Go to app.fil.one and sign up with your email or SSO.
- Verify your email address.
- You're in. No credit card needed — your 30-day free trial starts automatically.
2. Create a bucket
From the dashboard, click Create Bucket. Give it a name (lowercase, no spaces — same rules as S3) and choose your settings:
| Setting | Value | Notes |
|---|---|---|
| Region | eu-west-1 | |
| Encryption | Always on | All data is encrypted at rest by default. |
You will also see an API key section during bucket creation. You can create a new API key here or configure permissions for an existing one. If you plan to use the CLI or SDK, set up your key at this step — otherwise skip it and go to API Keys in the left menu later.
3. Upload your first object
Choose your preferred method. The App requires no API key. For CLI and SDK access, go to API Keys in the left menu and click Create Key. You'll get two values:
- Access Key ID — identifies your account (safe to store in config)
- Secret Access Key — authenticates your requests (treat like a password)
Your secret key is shown once. Copy it and store it securely. If you lose it, you'll need to generate a new key pair.
- App
- AWS CLI
- Python (boto3)
- JavaScript (AWS SDK v3)
- Open your bucket from the dashboard.
- Click Upload and select a file.
- Your object appears in the file list immediately.
- To download: click the file name to open its detail page, then select Download from the "..." menu. You can also click the download icon directly in the file list row.
Configure the CLI to point at Fil One:
aws configure set aws_access_key_id YOUR_ACCESS_KEY
aws configure set aws_secret_access_key YOUR_SECRET_KEY
aws configure set default.region eu-west-1
Upload a file:
aws s3 cp my-file.txt s3://my-bucket/my-file.txt \
--endpoint-url https://eu-west-1.s3.fil.one
Verify it's there:
aws s3 ls s3://my-bucket/ --endpoint-url https://eu-west-1.s3.fil.one
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://eu-west-1.s3.fil.one",
aws_access_key_id="YOUR_ACCESS_KEY",
aws_secret_access_key="YOUR_SECRET_KEY",
)
# Upload a file
s3.upload_file("my-file.txt", "my-bucket", "my-file.txt")
# List objects to confirm
response = s3.list_objects_v2(Bucket="my-bucket")
for obj in response.get("Contents", []):
print(obj["Key"], obj["Size"])
import { S3Client, PutObjectCommand, ListObjectsV2Command } from "@aws-sdk/client-s3";
import { readFileSync } from "fs";
const client = new S3Client({
endpoint: "https://eu-west-1.s3.fil.one",
region: "eu-west-1",
credentials: {
accessKeyId: "YOUR_ACCESS_KEY",
secretAccessKey: "YOUR_SECRET_KEY",
},
});
// Upload a file
await client.send(new PutObjectCommand({
Bucket: "my-bucket",
Key: "my-file.txt",
Body: readFileSync("my-file.txt"),
}));
// List objects to confirm
const { Contents } = await client.send(
new ListObjectsV2Command({ Bucket: "my-bucket" })
);
Contents?.forEach((obj) => console.log(obj.Key, obj.Size));