S3 Storage
The S3 view in Floci Studio is a full object browser: create buckets, browse the object tree, upload content, preview objects, and generate presigned URLs.
Creating a bucket
Section titled “Creating a bucket”- Click S3 in the sidebar.
- Click Create Bucket.
- Enter a bucket name (e.g.,
my-app-assets). Bucket names must be globally unique within your local emulator. - Click Create.
Browsing objects
Section titled “Browsing objects”Click a bucket to open the object browser. Use the prefix filter to navigate folder paths (e.g., invoices/2024/).
Uploading an object
Section titled “Uploading an object”In the bucket detail view, click Upload Object. You can:
- Drag and drop a file
- Paste a JSON / text payload directly
- Set a custom
Content-Type
Downloading and previewing
Section titled “Downloading and previewing”Click any object to preview its content. Text, JSON, and images render inline.
Generating a presigned URL
Section titled “Generating a presigned URL”Right-click any object (or click the action menu) and select Generate Presigned URL. Set the expiry duration in seconds. The URL is copied to your clipboard and works like a real AWS presigned URL against the local endpoint.
SDK integration
Section titled “SDK integration”import boto3
s3 = boto3.client( "s3", endpoint_url="http://localhost:4566", region_name="us-east-1", aws_access_key_id="test", aws_secret_access_key="test", use_path_style_endpoint=True, # required for LocalStack-compatible endpoints)
# Create buckets3.create_bucket(Bucket="my-app-assets")
# Uploads3.put_object(Bucket="my-app-assets", Key="invoices/4419.pdf", Body=b"%PDF...", ContentType="application/pdf")
# Downloadobj = s3.get_object(Bucket="my-app-assets", Key="invoices/4419.pdf")content = obj["Body"].read()
# Presigned URL (valid for 1 hour)url = s3.generate_presigned_url( "get_object", Params={"Bucket": "my-app-assets", "Key": "invoices/4419.pdf"}, ExpiresIn=3600,)
# List objectsresp = s3.list_objects_v2(Bucket="my-app-assets", Prefix="invoices/")for obj in resp.get("Contents", []): print(obj["Key"], obj["Size"])Using Minio as an alternative
Section titled “Using Minio as an alternative”If you need S3-compatible storage with a dedicated UI, deploy the Minio recipe from the Marketplace. Minio exposes the S3 API on port 9000 and a web console on 9001.