我的问题的背景是我想编写一个自定义 API 来接收文件上传请求,验证它们,生成具有所需权限的 SAS 令牌,并向调用客户端返回 HTTP 301,其中包含 Azure 存储帐户的 URI,其中包含所有必需的查询参数,例如https://mystorage.file.core.windows.net/share/movie.avi?srt=sco&sv=2020-02-10&ss=f&sp=rwdlacup&st=2022-03-02T14:10:19Z&se=2022-03-02T15:10:19Z&sig=ABC=
.
问题在于,Blob 存储 REST API和文件存储 REST API都需要必需的 HTTP 标头。这反过来将要求客户端设置我想要避免的那些,在最好的情况下,客户端只发送PUT https://myapi.com/upload
带有一些身份验证信息的 URI,并返回一个包含上传文件所需的所有参数的 URI。
另一种方法是客户端将他的文件发送到https://myapi.com/upload
,然后 API 负责将文件上传到存储帐户。鉴于文件可能会变大,我想避免这种额外的开销,将文件直接上传到目的地并将 API 用作验证器和 SAS 提供程序(如本图的第二部分所示)。