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 | |
| Object Lock | Always on | Every bucket has WORM compliance built in. |
| Versioning | Always on | Required by Object Lock. |
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)
note
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 and then click Download.
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://s3.fil.one
Verify it's there:
aws s3 ls s3://my-bucket/ --endpoint-url https://s3.fil.one
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://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://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));