Looking at the docs for “Send Apple HLS content to Amazon S3 using Wowza Streaming Engine” (the forum won’t let me post a direct link to the docs) I see we can pretty easily send HLS segments and the playlist files directly to Amazon S3.
But what about S3-compatible APIs? In this case I’m specifically interested in Cloudflare’s R2 service, but this also applies to anything that has an S3 compatible API, e.g. Minio.
Technically, I believe all we’d need is a way to set the host and everything should work.
Hi,
Welcome to the community and thanks for posting.
If the destination is S3 compatible, then sending HLS to that destination should be possible. If this is something you’re going to test anyway, it would be great to see an update here detailing if this worked and if so whether you had any problems to overcome.
If you’re unable to get it working, that information is useful too but I’d recommend creating a ticket so we can look into this further, review your configuration files and potentially run some tests using your Cloudflare R2 account (if required and with your permission).
Regards,
Jason Hilton
Senior Technical Support Engineer
WOWZA | The solution you start with, the partner you scale with.
Manage your Support cases online
Bookmark our FAQ page
Bookmark our Status page

Hi @Jason_Hilton,
Thank you for your reply.
The issue is that there appears to be no way to specify the endpoint of our S3 compatible API (in this case R2).
Here is a sample map entry from the documentation page -
stream_name={
"entryName": "wv_via_S3",
"streamName": "stream_name",
"profile": "cupertino-cloudstorage",
"cloudstorage.provider": "S3",
"cloudstorage.bucketName": "my-s3-bucket",
"cloudstorage.region": "[aws-region]",
"cloudstorage.accessID": "[aws-access-id]",
"cloudstorage.secretAccessKey": "[aws-secret-access-key]",
"debugLog": "false",
"cloudstorage.transportDebug": "false",
"http.relativePlaylists": "true"
}
For this to work we would need something like a cloudstorage.endpoint
key, but nothing of the sort appears to be documented. I suspect the module hard codes the endpoint in, just replacing the region in the url.