您可以创建一个Lambda函数,将其与CloudFront分发关联,并在Lambda函数中添加以下代码来修改m3u8响应主体。
import re
def lambda_handler(event, context):
# 获取CloudFront事件和响应对象
cf_event = event['Records'][0]['cf']
response = cf_event['response']
# 获取响应主体并进行修改
response_body = response['body']['data'].decode('utf-8')
modified_body = re.sub(r'\.ts\?', '-modified.ts?', response_body)
response['body'] = modified_body.encode('utf-8')
# 返回修改后的响应
return response
在这个示例中,Lambda函数使用正则表达式将所有的.m3u8文件中的.ts请求路径修改为-modified.ts。然后,响应主体被编码并返回给CloudFront分发,以便将修改后的内容传递回终端用户。