Laravel Vapor前端大文件上传报错:缺失AWS环境变量
解决办法
前端无需直接配置敏感AWS密钥
后端上传正常说明服务器端环境配置没问题,前端报错提示缺少变量,本质是Vapor前端上传依赖后端生成的签名URL,而非直接在前端配置密钥。配置前端可访问的Vapor环境变量
- 在
.env文件中添加带VITE_前缀的变量(Vite会自动注入前端):VITE_AWS_BUCKET="${AWS_BUCKET}" VITE_AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" - 在前端入口文件(比如
resources/js/app.js)初始化Vapor:import Vapor from 'laravel-vapor'; Vapor.register({ region: import.meta.env.VITE_AWS_DEFAULT_REGION, bucket: import.meta.env.VITE_AWS_BUCKET, // 无需填写access key,Vapor会自动请求后端生成签名 });
- 检查Vapor后端配置与路由
- 确认
config/vapor.php正确读取环境变量:return [ 'bucket' => env('AWS_BUCKET'), 'region' => env('AWS_DEFAULT_REGION'), 'key' => env('VAPOR_KEY'), // 若有配置则添加 ]; - 确保
/vapor/signed-storage-url路由未被中间件拦截,可通过Postman发起POST请求测试,验证是否返回正常签名响应。
- 重新编译前端资源
修改配置后执行编译命令,确保新变量生效:
npm run build
内容的提问来源于stack exchange,提问作者Gabriel Barros
相关产品推荐
相关产品推荐

