要为桌面和移动设备创建静态网站,您可以使用AWS S3 (Simple Storage Service) 和AWS CloudFront 来托管和分发您的网站内容。以下是一个简单的解决方案和代码示例:
import boto3
s3 = boto3.resource('s3')
bucket_name = 'your-bucket-name'
s3.create_bucket(Bucket=bucket_name)
s3_bucket = s3.Bucket(bucket_name)
# 上传单个文件
s3_bucket.upload_file('index.html', 'index.html')
# 上传整个文件夹
import os
for root, dirs, files in os.walk('static_website_folder'):
for file in files:
local_path = os.path.join(root, file)
relative_path = os.path.relpath(local_path, 'static_website_folder')
s3_bucket.upload_file(local_path, relative_path)
s3_bucket.Website().put(
WebsiteConfiguration={
'ErrorDocument': {'Key': 'error.html'},
'IndexDocument': {'Suffix': 'index.html'}
}
)
cloudfront = boto3.client('cloudfront')
distribution = cloudfront.create_distribution(
DistributionConfig={
'CallerReference': 'your-unique-reference',
'DefaultRootObject': 'index.html',
'Origins': {
'Quantity': 1,
'Items': [{
'Id': 'your-s3-origin-id',
'DomainName': f'{bucket_name}.s3.amazonaws.com',
'S3OriginConfig': {
'OriginAccessIdentity': ''
}
}]
},
'DefaultCacheBehavior': {
'TargetOriginId': 'your-s3-origin-id',
'ViewerProtocolPolicy': 'redirect-to-https',
'AllowedMethods': {
'Quantity': 2,
'Items': ['GET', 'HEAD']
},
'ForwardedValues': {
'QueryString': False,
'Cookies': {'Forward': 'none'}
},
'TrustedSigners': {
'Enabled': False,
'Quantity': 0
}
}
}
)
distribution_id = distribution['Distribution']['Id']
waiter = cloudfront.get_waiter('distribution_deployed')
waiter.wait(Id=distribution_id)
完成以上步骤后,您的静态网站文件将被托管在S3存储桶中,并通过CloudFront分发加速。您可以使用CloudFront提供的分发域名来访问您的网站。
请注意,上述示例代码仅为参考,您可能需要根据您的具体需求进行适当的修改和配置。