这是我第一次使用 Oracle 云(或任何云),我正在做一个自学练习,我创建了一个 Angular 应用程序(不是 AngularJS),我想在我的 Oracle 云对象存储中上传图像桶。我正在假设只有 Angular 才能实现我想要实现的目标(即:不需要中间层,如 PHP、C#、Java 等)。
我现在需要创建“授权”标头(据我所知)用于验证 PUT 请求,但我无法使其正常工作。根据我阅读请求签名文档的理解,似乎我实际上可能无法纯粹在 Angular 中做到这一点,并且某种中间层是必要的,因为文档只显示了中间层技术的代码示例。
我想知道的是,在技术上是否可以仅使用 Angular 这样的前端框架来调用 Oracle 云对象存储 API?我尝试使用CryptoJS并使用 HmacSHA256 之类的东西来生成签名,但是每次执行 API 调用时,Oracle Cloud 都会不断收到以下错误:
error:
code: "NotAuthenticated"
message: "The required information to complete authentication was not provided."
根据 [Request Signature documentation],我需要的唯一标头是(request-target)、host和date,所以我只包括这些标头。
如果仅使用 Angular(不使用中间层)实现身份验证在技术上是可行的,那么我会相当有信心我正在做的创建签名的操作是不正确的,以及我当时将寻求的在创建该签名以进行身份验证方面有一些帮助。如果不是,我想这就是我的实验结束的地方。
提前感谢大家的帮助!