从非 public S3 存储桶下载文件(.bin 文件)

Download a file (.bin file) from non public S3 bucket

我想在 ESP32 设备上执行 OTA,固件存储在 AWS S3 存储桶中。当我将存储桶权限设置为 public(取消选中“阻止 public 访问”)时,下载工作正常。但是,我想将我的存储桶保密,并且仍然能够下载二进制文件。现在我拥有对存储桶的根访问权限。

我该怎么做?

您的要求似乎是从没有一组 AWS 凭据的设备上从 Amazon S3 下载私有对象。

这可以通过使用 Amazon S3 pre-signed URL 来完成,这是一个有时间限制的 URL,提供对私有对象的临时访问。

流程为:

  • ESP32 设备将向后端进行身份验证
  • 后端将验证用户是否有权访问该对象
  • 然后它将生成预签名 URL 并将其提供给 ESP32 设备(以某种方式)
  • ESP32 设备然后使用预签名 URL 下载对象