Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/billing/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Fil One storage pricing."

Fil One is priced at **$5.99 / TB / month**, with a **$5.99 / month minimum**. If you store less than 1 TB, you are billed the $5.99 minimum.

No egress fees, no per-request charges, no hidden costs.
No egress fees and no per-request charges.

This is the self-service **Pay as you go** plan. For volume pricing on 1, 3, or 5-year terms, the **Business plan** is arranged with the sales team. See [Billing](/app/billing#choosing-a-plan).

Expand Down
2 changes: 2 additions & 0 deletions docs/billing/trial.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ The storage and egress figures above are hard limits, not soft allowances, and r
- **Storage reaching 1 TB** puts the account into a **write-locked** state — you can still read and download, but new uploads are rejected.
- **Egress reaching 2 TB** **disables the account** — the same state as an account whose grace period has ended, with no read or write access until you upgrade. There is no read-only grace period first.

Upgrading to a paid plan lifts both caps as soon as the upgrade completes.

Trial egress is a **single cumulative budget** across the whole 30 days, not a monthly amount that resets. Enforcement runs on a twice-daily usage job (around 07:00 and 19:00 UTC), so a cap may be exceeded for a few hours before access changes.
:::

Expand Down
22 changes: 15 additions & 7 deletions docs/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ On a bucket **without versioning**, the object disappears from your account imme

On a bucket **with versioning enabled**, a delete over the S3 API without a version ID places a delete marker instead. The object stops appearing in listings, but every prior version is kept and can still be downloaded by version ID, and you can make the object visible again by deleting the delete marker. Those retained versions continue to count as stored storage. Deleting from the dashboard is different: it always removes the specific version you chose, permanently, and never writes a delete marker. See [Versioning](/storage/versioning).

Once deleted, an object is no longer accessible through the API or the dashboard. Because Filecoin stores data in sealed sectors, the underlying storage may persist for a bounded period until the sector naturally expires — an infrastructure detail set by the storage layer, not a user-facing state. That residual data stays encrypted, with key custody held by the regional storage operator rather than by you or Fil One (see [Encryption](/security/encryption)). The same applies when you delete a bucket.
Once deleted, an object or bucket is no longer accessible through the API or the dashboard. Encrypted residual data can remain in Filecoin storage for a bounded period: see [What happens to deleted data](/storage/objects#what-happens-to-deleted-data).

</div>
</details>
Expand Down Expand Up @@ -80,13 +80,19 @@ The 30-day trial includes 1 TB of storage, 2 TB of egress bandwidth, and unlimit
<summary>Can I use Fil One for backups?</summary>
<div>

Fil One exposes an S3-compatible API, so backup software that targets S3 generally works — but check your tool's requirements first. We have not verified specific backup products, and three of the documented gaps are ones backup tools commonly depend on:
Most S3 backup tools work. Before you commit to one, check that it can:

- use **path-style addressing** (bucket names can't contain dots, either),
- sign requests with **SigV4**,
- point at a custom endpoint: your bucket's region, `https://s3.eu-west-1.filonecontent.com` or `https://s3.us-east-1.filonecontent.com`.

We haven't tested specific backup products. Three documented gaps are ones some backup tools depend on:

- **Server-side copy of a specific version is unverified in `eu-west-1`.** `CopyObject` is confirmed in `us-east-1`, and plain server-side copy works in `eu-west-1`, but copying a specific `VersionId` has not been verified there. Some tools use `CopyObject` for renames, moves, and deduplication.
- **No `CreateBucket` over the API in `eu-west-1`.** A tool that provisions its own repository bucket needs the bucket created in the dashboard first.
- **No lifecycle rules.** Retention-based pruning has to be handled by the tool itself.

Path-style addressing is also required, and bucket names cannot contain dots. Check your tool against the [S3 Compatibility Reference](/reference/s3-compatibility) before committing to it.
See the [S3 Compatibility Reference](/reference/s3-compatibility) for the full list.

</div>
</details>
Expand All @@ -95,9 +101,9 @@ Path-style addressing is also required, and bucket names cannot contain dots. Ch
<summary>What durability guarantees do you offer?</summary>
<div>

Fil One is designed for high durability through distributed storage across multiple providers. We don't publish a durability figure; for details, email [support@filone.com](mailto:support@filone.com).
The [Fil One SLA](https://www.filone.com/sla) commits to 99.9% monthly uptime, with service credits if it is missed.

Availability is covered separately: the [Fil One SLA](https://www.filone.com/sla) commits to 99.9% monthly uptime, with service credits if it is missed.
Fil One stores data on Filecoin, where storage providers must keep proving they still hold the data they committed to store (see the data integrity question below). We don't publish a durability percentage. For details, email [support@filone.com](mailto:support@filone.com).

</div>
</details>
Expand All @@ -117,9 +123,11 @@ Access through the S3 API is still per access key. There are no IAM users or buc
<summary>How does Filecoin protect the integrity of stored data?</summary>
<div>

Fil One is built on Filecoin, a distributed storage network where storage providers must continuously submit cryptographic proofs — called Proof of Replication (PoRep) and Proof of Spacetime (PoSt) — to prove they are still holding the data they committed to store. Providers that fail to produce valid proofs are penalised. This proof cycle runs at the network level and is not something you trigger or check yourself.
To check an individual object, compare the `ETag` returned by `HeadObject` with a checksum you keep. To stop an object changing for a fixed period, use [Object Lock](/storage/object-lock).

Underneath, Fil One is built on Filecoin, a distributed storage network where storage providers must continuously submit cryptographic proofs, called Proof of Replication (PoRep) and Proof of Spacetime (PoSt), to show they still hold the data they committed to store. Providers that fail to produce valid proofs are penalised. This runs at the network level, not per request.

Fil One does not currently expose per-object proof data — content identifiers, deal IDs, and sealing state are not surfaced through the API or the dashboard, so you cannot independently audit an individual object today. For object-level integrity checks in your own application, compare the `ETag` returned by `HeadObject` against a checksum you keep, or apply [Object Lock](/storage/object-lock) to make objects immutable for a fixed retention period.
Fil One doesn't expose per-object proof data: content identifiers, deal IDs and sealing state aren't shown in the API or the dashboard.

</div>
</details>
Expand Down
10 changes: 5 additions & 5 deletions docs/limits.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ The trial lasts 30 days. After it ends, your account enters a 7-day read-only gr
| Maximum object key length | 1,024 characters in the dashboard; 1,024 bytes (standard S3 limit) through the API |
| Maximum metadata size per object | 2 KB |

:::note Which of these are Fil One-specific
The **dashboard** rejects object keys longer than **1,024 characters** when you upload, which is verified in code. The other values in this table (the 1,024-byte key length through the S3 API, maximum object and part sizes, maximum part count, minimum part size, and metadata size) are the **standard AWS S3 limits** that Fil One's storage gateway is expected to follow but that we have **not independently confirmed**. Treat them as guidance rather than guaranteed values, and test against your own workload before hard-coding an exact figure.
:::
### Standard S3 limits

The **dashboard** rejects object keys longer than **1,024 characters** when you upload. The other values in this table (the 1,024-byte key length through the S3 API, maximum object and part sizes, maximum part count, minimum part size, and metadata size) are the **standard AWS S3 limits**. Fil One's S3 endpoints are expected to follow them, but we haven't confirmed the exact values ourselves. Treat them as guidance, and test against your own workload before hard-coding an exact figure. Other pages that quote these values link here.

For objects larger than 5 GB, use [multipart upload](/storage/multipart-uploads).

Expand Down Expand Up @@ -63,7 +63,7 @@ Bucket creation and deletion through the S3 API are available in `us-east-1` but

## API rate limits

Rate limits are enforced by the underlying storage gateway. Fil One does not impose additional rate limits on top of these. If you encounter `SlowDown` or `ServiceUnavailable` responses, back off with exponential retry. If you consistently hit limits at scale, email [support@filone.com](mailto:support@filone.com).
Fil One doesn't publish fixed rate limits, and doesn't add its own on top of the S3 endpoint's. If you encounter `SlowDown` or `ServiceUnavailable` responses, back off with exponential retry. If you consistently hit limits at scale, email [support@filone.com](mailto:support@filone.com).

## Naming constraints

Expand All @@ -75,5 +75,5 @@ Rate limits are enforced by the underlying storage gateway. Fil One does not imp
- Unique within Fil One

**Object keys:**
- Up to 1,024 characters for dashboard uploads; through the S3 API, the standard S3 limit of 1,024 bytes (UTF-8) applies but is not independently confirmed
- Up to 1,024 characters for dashboard uploads; through the S3 API, the standard S3 limit of 1,024 bytes (UTF-8) applies (see [Standard S3 limits](#standard-s3-limits))
- Any UTF-8 character is valid, but avoid control characters and characters that require special URL encoding for best compatibility
63 changes: 37 additions & 26 deletions docs/quickstart/cli.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
---
title: Quickstart - AWS CLI
description: Upload your first object using the AWS CLI.
description: Set up the AWS CLI for Fil One with a profile per region, create a bucket, and upload and download your first object.
---

Use the AWS CLI to upload, list and download objects in a Fil One bucket. You need a Fil One account and an API key. To create a key, open **API Keys** in the [console](https://app.filone.com), click **Create new key**, and pick the same region as your bucket. The secret is shown once.
The [Quickstart](/quickstart?tool=cli) covers signup, the bucket and the API key, and uploads a first file with the AWS CLI. This page adds what the Quickstart skips: the profile as a config file, a profile per region, and creating a bucket from the CLI. For every other command, see [AWS CLI](/sdk/cli).

You need an API key in the same region as your bucket. To create one, open **API Keys** in the [console](https://app.filone.com) and click **Create new key**. The secret is shown once.

## 1. Install the AWS CLI

Expand All @@ -15,9 +17,9 @@ brew install awscli
# https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
```

## 2. Configure credentials
## 2. Configure a profile

Set up a named profile, so you don't overwrite your default AWS credentials and don't have to pass `--endpoint-url` on every command:
The `aws configure` commands in the Quickstart write these two files, and you can also edit them directly. A named profile keeps your default AWS credentials untouched, and you don't have to pass `--endpoint-url` on every command:

```ini
# ~/.aws/config
Expand All @@ -28,50 +30,59 @@ s3 =
addressing_style = path
```

The `addressing_style = path` line is required — Fil One only supports path-style URLs, and the CLI otherwise defaults to virtual-hosted style, which fails.

:::note The endpoint depends on your bucket's region
The example above uses `eu-west-1`, the default region. If your bucket is in `us-east-1`, use `https://s3.us-east-1.filonecontent.com` and `region = us-east-1` instead. The endpoint and the region must both match the bucket you are working with, and your access key has to belong to that region too.

If you use both regions, set up a profile per region (`[profile filone-eu]`, `[profile filone-us]`) and pick with `--profile`.
:::

```ini
# ~/.aws/credentials
[filone]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
```

## 3. Create a bucket
The `addressing_style = path` line is required. Fil One only supports path-style URLs, and the CLI otherwise defaults to virtual-hosted style, which fails.

:::note The endpoint depends on your bucket's region
The example above uses `eu-west-1`, the default region. The endpoint, the region and your access key must all match the region of the bucket you work with. If you use both regions, add a second profile:

```ini
# ~/.aws/config
[profile filone-us]
endpoint_url = https://s3.us-east-1.filonecontent.com
region = us-east-1
s3 =
addressing_style = path
```

Whether `CreateBucket` works through the S3 API depends on the region. It is **not** available in `eu-west-1`, the default region. There, create the bucket in the [Fil One console](https://app.filone.com): click **New bucket**, enter `my-bucket` (or your own name), and click **Create bucket**.
Then add a `[filone-us]` section with your `us-east-1` key to `~/.aws/credentials`, and choose the region with `--profile filone-us`.
:::

In `us-east-1` you can create a bucket from the CLI, using a key that has the `CreateBucket` permission. This requires a `us-east-1` profile — define one the same way as the `filone` profile above but with the `us-east-1` endpoint and region (shown here as `filone-us`):
Check the profile before you use it:

```bash
aws s3 mb s3://my-bucket --profile filone-us
aws s3 ls --profile filone
```

Versioning and Object Lock can only be turned on when you create the bucket in the console. See [Buckets](/storage/buckets).
It lists the buckets in the key's region. If you get an error, see [Troubleshooting](/reference/errors#troubleshooting).

## 3. Create a bucket

The steps below use the `filone` profile (`eu-west-1`). If your bucket is in `us-east-1`, use `--profile filone-us` instead: the profile, the key and the bucket must all be in the same region.
Whether `CreateBucket` works through the S3 API depends on the region. It is **not** available in `eu-west-1`, the default region. There, create the bucket in the [Fil One console](https://app.filone.com): click **New bucket** on the dashboard, enter `my-bucket` (or your own name), and click **Create bucket**.

## 4. Upload a file
In `us-east-1` you can create a bucket from the CLI, with the `filone-us` profile and a key that has the `CreateBucket` permission. That permission isn't selected by default when you create a key:

```bash
echo "hello" > my-file.txt
aws s3 cp my-file.txt s3://my-bucket/ --profile filone
aws s3 mb s3://my-bucket --profile filone-us
```

## 5. List objects
Versioning and Object Lock can only be turned on when you create the bucket in the console. See [Buckets](/storage/buckets).

```bash
aws s3 ls s3://my-bucket/ --profile filone
```
## 4. Upload, list and download

## 6. Download the file
The commands below use the `filone` profile (`eu-west-1`). For a bucket in `us-east-1`, use `--profile filone-us`.

```bash
echo "hello" > my-file.txt
aws s3 cp my-file.txt s3://my-bucket/ --profile filone
aws s3 ls s3://my-bucket/ --profile filone
aws s3 cp s3://my-bucket/my-file.txt ./downloaded.txt --profile filone
```

For syncing folders, deleting objects, presigned URLs and multipart uploads, see [AWS CLI](/sdk/cli).
Loading