Objects
Objects are the files you store in Fil One. Each object consists of the file data, a key (the file path/name), and metadata.
Uploading objects
- App
- AWS CLI
- Python (boto3)
- Open a bucket from the dashboard.
- Click Upload object.
- Select one or more files, or drag a whole folder in (an optional prefix lets you upload into a subpath), then click Upload to start the transfer.
- Objects appear in the file list once the upload completes.
# Upload a single file
aws s3 cp my-file.txt s3://my-bucket/my-file.txt \
--endpoint-url https://eu-west-1.s3.filonecontent.com
# Upload a directory
aws s3 sync ./local-folder s3://my-bucket/folder/ \
--endpoint-url https://eu-west-1.s3.filonecontent.com
# Upload a file
s3.upload_file("my-file.txt", "my-bucket", "my-file.txt")
# Upload with metadata
s3.put_object(
Bucket="my-bucket",
Key="report.pdf",
Body=open("report.pdf", "rb"),
ContentType="application/pdf",
)
For very large objects (above the single-PUT limit — see Limits), use multipart upload.
Downloading objects
- App
- AWS CLI
- Python (boto3)
Click the download icon directly on the object's row in the file list, or click the file name to open its detail page and use the Download button in the header.
aws s3 cp s3://my-bucket/my-file.txt ./my-file.txt \
--endpoint-url https://eu-west-1.s3.filonecontent.com
s3.download_file("my-bucket", "my-file.txt", "my-file.txt")
Listing objects
aws s3 ls s3://my-bucket/ --endpoint-url https://eu-west-1.s3.filonecontent.com
For programmatic listing with pagination:
paginator = s3.get_paginator("list_objects_v2")
for page in paginator.paginate(Bucket="my-bucket"):
for obj in page.get("Contents", []):
print(obj["Key"], obj["Size"])
Deleting objects
- App
- AWS CLI
Click the trash icon on an object's row, then confirm in the dialog. Deletion is one object at a time — the console has no multi-select or bulk delete.
aws s3 rm s3://my-bucket/my-file.txt \
--endpoint-url https://eu-west-1.s3.filonecontent.com
On a bucket without versioning, deletion is immediate — the object disappears from the dashboard and API instantly, and there is no recycle bin or soft-delete.
On a versioned bucket, a plain delete places a delete marker instead: the object stops appearing in listings, but prior versions are retained, remain downloadable by version ID, and continue to count as stored storage.
When you delete an object, it is immediately removed from your Fil One account and is no longer accessible. Because Filecoin stores data in sealed sectors, the underlying storage may persist for a bounded period after deletion before it naturally expires. That residual data stays encrypted, and key custody sits with the regional storage operator rather than with you or Fil One — see Encryption. The exact duration is set by the storage layer rather than measured by Fil One, and it does not affect your ability to manage your data in Fil One.
Presigned URLs
Generate a temporary URL that grants time-limited access to a specific object without requiring API credentials.
# Generate a download URL valid for 1 hour
url = s3.generate_presigned_url(
"get_object",
Params={"Bucket": "my-bucket", "Key": "shared-report.pdf"},
ExpiresIn=3600,
)
print(url)
Presigned URLs work for both GetObject (downloads) and PutObject (uploads).