我有一个用 Asp.net 核心2.0构建的网站。该网站获取我的 ASW S3 存储桶中的文件列表,并将其显示为经过身份验证的用户的链接。当我在本地运行网站时,我没有任何问题,并且能够访问 S3 以生成预签名的 URL。当我将 Web 应用程序部署到 LightSail ubuntu 时,我收到此非常有用的错误消息:AmazonS3Exception:访问被拒绝。
起初我以为是一个地区问题。我更改了 S3 存储桶以使用与 Lightsail ubuntu 实例(东部 #2)相同的区域。然后我认为这是我的 CORS 问题,并确保我的存储桶允许 CORS。
我现在有点卡住了。
我遇到了完全相同的问题,然后我通过创建一个环境变量解决了它。要在 Ubuntu 中永久添加环境变量,请通过以下命令打开环境文件
sudo vi /etc/environment
然后像这样添加您的凭据
AWS_ACCESS_KEY_ID=YOUR_KEY_ID
AWS_SECRET_ACCESS_KEY=YOUR_SECRECT_ACCESS_KEY
然后保存环境文件,并重新启动 asp 核心应用。