Docs · Object Storage

Connect your software to Fileora Object Storage.

Everything you need to point an S3 client at Fileora: where to connect, how keys work, what is supported and how it is billed.

Connect

Path-style S3 with AWS SigV4.

Your workspace shows the endpoint and region. Create a bucket there, then a service account with access to it, then a key. Use path-style addresses: https://<endpoint>/<bucket>/<key>.

bash: AWS CLI (tested with 1.46)
export AWS_ACCESS_KEY_ID="<access key id>"
export AWS_SECRET_ACCESS_KEY="<secret access key>"
export AWS_DEFAULT_REGION="<region>"
aws configure set default.s3.addressing_style path
aws --endpoint-url https://<endpoint> s3 sync ./backups s3://my-bucket/backups/
python: Python, boto3 (tested with 1.43)
import os, boto3
from botocore.config import Config

s3 = boto3.client("s3", endpoint_url="https://<endpoint>", region_name="<region>",
                  aws_access_key_id=os.environ["FILEORA_ACCESS_KEY_ID"],
                  aws_secret_access_key=os.environ["FILEORA_SECRET_ACCESS_KEY"],
                  config=Config(s3={"addressing_style": "path"}))
s3.upload_file("dump.sql.gz", "my-bucket", "db/dump.sql.gz")
ts: JavaScript, AWS SDK v3 (tested with 3.1152)
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';

const s3 = new S3Client({
  endpoint: 'https://<endpoint>',
  region: '<region>',
  forcePathStyle: true,
  credentials: {
    accessKeyId: process.env.FILEORA_ACCESS_KEY_ID!,
    secretAccessKey: process.env.FILEORA_SECRET_ACCESS_KEY!,
  },
  requestChecksumCalculation: 'WHEN_REQUIRED', // needed for presigned PUT
});
await s3.send(new PutObjectCommand({ Bucket: 'my-bucket', Key: 'hello.txt', Body: 'Hello' }));

Keys and access

Default deny, scoped per service account.
  • A service account is what software acts as. Give it one or more grants: a bucket, an optional key prefix (folder) and actions — list, read, upload, delete, multipart.
  • A key belongs to one service account. Its secret is shown once. Lost secrets are not recoverable: create a new key and revoke the old one.
  • Revoking a key, disabling an account or changing grants applies from the next request.
  • Your Fileora password and workspace API keys never work against the S3 endpoint.

What is supported

A tested part of the S3 API.
Supported S3 operations
OperationNotes
ListBuckets, HeadBucketOnly the buckets the key may see.
ListObjectsV2Prefix, delimiter, pagination — inside the key’s granted folders.
PutObject, GetObject, HeadObjectUp to 5 GiB per request; ranges and conditional requests; MD5 and SHA/CRC checksums verified.
DeleteObject, DeleteObjectsUp to 1000 keys per request.
CopyObjectUp to 5 GiB; source and destination both need permission.
Multipart uploadsCreate, upload part, list parts, complete, abort, list uploads; objects up to 100 GB.
Presigned GET and PUTUp to 7 days. JavaScript SDK: set requestChecksumCalculation to WHEN_REQUIRED for PUT.

Not supported (answers NotImplemented):

  • Creating or deleting buckets over S3 (use your workspace)
  • Versioning, object lock, retention and legal hold
  • Public access, ACLs other than private, bucket policies
  • Server-side encryption headers, tagging, website hosting, notifications
  • Virtual-hosted-style addresses and signature version 2

Protection and restore

A verified second copy of every version.

After the primary stores an upload, a second copy is made and its SHA-256 checked; until then the object shows as “copy pending”. When an object is deleted or overwritten, its copy is kept for a set number of days (shown in your workspace) and can be restored into a new folder — never over live data. Restored objects are new objects and count as stored data.

During the beta both copies may be on the same site. Two independent locations and recovery targets are published only once they have been tested.

Billing

৳4 per GB-month, by the second.

Storage costs ৳4 per GB-month (1 GB = 10⁹ bytes): the bytes you store multiplied by the time you store them, over the real calendar month, rounded once on the monthly total. Parts of an unfinished multipart upload count until it completes or is aborted. You choose a capacity ceiling but pay only for what you store; the protected copy is not billed twice.

Download traffic and requests are measured per UTC month and shown in your workspace; their prices are not set yet and will be published before they apply. The private beta is free.

Price calculator

Limits

Defaults on this service.
  • 5 GiB per single upload; 100 GB per object with multipart.
  • Unfinished multipart uploads are aborted after 7 days.
  • Up to 2 active keys per service account (rotate by revoking the old one).
  • Up to 2 KB of user metadata per object. Metadata names are case-insensitive; Python’s boto3 may report them with capital letters (for example App), so compare them case-insensitively.
  • Bucket names: 3–63 lowercase letters, numbers and hyphens, shared across all Fileora workspaces.