如何使用AWS生成HTTPS下载链接实现本地.exe文件的公开下载
完全可以通过AWS S3 + Lambda实现你的全部需求,具体实现方案如下:
1 公开HTTPS下载链接实现
- 新建S3存储桶,关闭「阻止所有公开访问」配置,添加存储桶策略允许匿名用户读取.exe类目标文件的权限
- 上传本地.exe文件到S3存储桶后,文件自带的「对象URL」就是符合要求的公开HTTPS链接,最终展示效果示例:
在此处下载我的应用:https://look_how_downloadable_i_am.exe
- 可选搭配CloudFront CDN配置,提升全球用户的下载速度,也可绑定自定义域名替换默认的S3域名。
2 两种更新方案实现
2.1 Python代码自动化更新
你可以直接通过AWS官方的boto3库实现自动化上传更新,流程如下:
- 本地环境提前配置有权限写入该S3存储桶的AWS凭证
- 调用boto3的上传接口直接覆盖S3上的旧版本文件即可,核心代码示例:
import boto3 # 初始化S3客户端 s3_client = boto3.client("s3") # 三个参数依次为:本地exe文件路径、S3存储桶名称、S3上保存的文件名 s3_client.upload_file( "./local_your_app.exe", "your_bucket_name", "your_app.exe", ExtraArgs={"ACL": "public-read"} )
- 如果不想在本地环境存储S3写入权限,也可以封装一层Lambda服务:本地打包完新版本后发送请求触发Lambda,由Lambda完成文件上传、版本校验等后续流程。
2.2 可视化界面手动更新
有两种成熟方案可以选择:
- 轻量方案:直接使用AWS官方的S3控制台作为操作界面,给操作人员分配对应S3存储桶的写入权限,登录控制台后直接拖拽上传新版本exe覆盖旧文件即可,无需额外开发
- 自定义方案:如果不想让操作人员登录AWS后台,可以用Lambda + 简易HTML页面搭建专属上传页:前端提供文件选择入口,提交后将文件流转给Lambda做权限校验,校验通过后写入S3,操作人员仅需点选文件、确认上传两步即可完成更新。
可选优化项
- 开启S3版本控制功能,可在误覆盖旧版本时快速回滚
- 可在S3中额外存储一个版本清单文件(如
version.json),每次更新exe时同步修改清单里的版本号、更新说明等信息,方便客户端做更新提示 - 如果后续需要限制下载权限,可将存储桶改为私有,通过Lambda生成有时效性的预签名下载链接。
内容的提问来源于stack exchange,提问作者Utopion
相关产品推荐
相关产品推荐

