AWS S3和CloudFront CDN是常用的云存储和内容分发网络服务,用于存储和分发视频文件。以下是一个使用AWS SDK for Python(Boto3)上传视频文件到S3,并在CloudFront上分发的代码示例:
pip install boto3
import boto3
# 创建S3存储桶
s3_client = boto3.client('s3')
bucket_name = 'your-bucket-name'
response = s3_client.create_bucket(Bucket=bucket_name)
# 创建CloudFront分发
cloudfront_client = boto3.client('cloudfront')
distribution = cloudfront_client.create_distribution(
DistributionConfig={
'CallerReference': 'your-caller-reference',
'Origins': {
'Quantity': 1,
'Items': [
{
'Id': 'S3-origin',
'DomainName': f'{bucket_name}.s3.amazonaws.com',
'S3OriginConfig': {
'OriginAccessIdentity': ''
}
}
]
},
'DefaultCacheBehavior': {
'TargetOriginId': 'S3-origin',
'ViewerProtocolPolicy': 'allow-all',
'ForwardedValues': {
'QueryString': False,
'Cookies': {
'Forward': 'none'
}
},
'TrustedSigners': {
'Enabled': False,
'Quantity': 0
},
'MinTTL': 0
},
'Enabled': True,
'Comment': 'CloudFront distribution for video files'
}
)
distribution_id = distribution['Distribution']['Id']
domain_name = distribution['Distribution']['DomainName']
video_file_path = 'path/to/video.mp4'
s3_file_key = 'video.mp4'
s3_client.upload_file(video_file_path, bucket_name, s3_file_key)
video_url = f'https://{domain_name}/{s3_file_key}'
print(video_url)
这样,你就可以通过video_url
访问分发在CloudFront上的视频文件了。请替换相关的参数,例如your-bucket-name
为你自己的S3存储桶名称。