MeetStream Guide: Amazon S3 Custom Object Storage
MeetStream Guide: Amazon S3 Custom Object Storage
By default, MeetStream stores bot media—audio, video, transcripts, screenshots, chat logs, and meeting manifests—in a MeetStream-managed bucket. Fetch endpoints return presigned download URLs for those files.
Custom object storage lets you send those artifacts directly to your own storage account while keeping the same MeetStream bot and fetch APIs.
Use the aws provider for Amazon S3 or another S3-compatible endpoint. Authenticate with an AWS access key pair or IAM role.
Only one S3-compatible custom provider is active at a time. Saving a new aws or alibaba_oss configuration activates it and deactivates the other one. Artifacts written before the change remain pinned to their original provider, bucket, and prefix.
Custom storage is useful for compliance, regional data storage, lifecycle control, or direct ingestion into your data platform.
1) Prerequisites
All providers require:
- A bucket owned by your organization.
- Credentials that can write to the prefix you configure.
- A MeetStream API key.
For read_write access, the credentials also need to read uploaded objects so MeetStream can generate download URLs and retrieve JSON artifacts.
Create an IAM user access key or an IAM role that has access to your bucket and configured prefix.
2) Configure custom storage
Parameters
Secrets are stored as encrypted parameters and are never returned by the API.
3) Grant bucket permissions
Scope policies to the configured prefix. If you use distinct category prefixes, include one object resource for each distinct prefix.
For a read_write configuration using the meetstream prefix:
For write_only, remove s3:ListBucket and s3:GetObject; keep s3:PutObject and s3:DeleteObject.
4) Access modes
Use write_only when you want MeetStream to deliver files to your bucket but do not want it to read them back.
Configuration validation
MeetStream validates credentials before saving them:
awswithread_writevalidates bucket access withHeadBucket.write_onlyconfigurations use temporary write probes under each distinct effective prefix.
Successful probes are cleaned up. Grant DeleteObject to prevent a failed cleanup from leaving a probe object behind.
5) File layout in your bucket
MeetStream writes every artifact below the resolved prefix for its category, followed by the bot ID:
With the default prefix: "meetstream" and no per-category overrides:
The exact provider, bucket, and category prefix used for each processed artifact are recorded with the bot or transcript. Updating a storage configuration later does not break retrieval of existing media.
6) Fetch media after configuration
Your MeetStream API calls do not change when custom storage is enabled. With read_write, the API returns a presigned URL generated by the configured provider.
Presigned media URLs expire after one hour. Call the fetch endpoint again to obtain a fresh URL.
7) View, change, or delete configuration
View
The response includes non-sensitive metadata under StorageConfig.
Delete
Deleting a configuration affects only future processing; MeetStream does not delete objects already written to your bucket.
8) Troubleshooting
A fetch endpoint returns 403 with "access_mode": "write_only"
The configured provider is intentionally write-only. Download the object through your own storage workflow, or update it to read_write with read permissions.
A presigned URL returns 403
- It may have expired; fetch a new one from MeetStream.
- Verify the configured credentials still have object read access.
Files are not in the newly configured bucket
Only artifacts processed after a configuration change use the new active provider. Existing artifacts remain in their original bucket.
