天天看點

【Azure API 管理】讨論APIM是否适合直接存儲檔案到Azure Storage Account呢?

問題描述

需要從 APIM 直接将大檔案存入Azure Storage,沒看到這方面的官方文檔,是以是否有這方面的實踐案例,或者APIM是否支援引用SDK (如Azure Storage SDK)?

問題分析

API Management (APIM) 是一種為API 網關的實作,不适合通過APIM來直接操作存儲大檔案到Azure Storage中。同時,APIM作為網關,是不支援引入SDK進行代碼操作的。是以也是無法使用Azure Storage SDK。

但是,Azure Storage 是支援REST API的方式來存入檔案,是以可以把Storage的API作為APIM的後端服務,間接實作調用APIM服務存儲檔案到Azure Storage Account中。

【Azure API 管理】讨論APIM是否适合直接存儲檔案到Azure Storage Account呢?

(Source: https://docs.microsoft.com/en-us/rest/api/storageservices/put-blob)

而在APIM中配置可以通過SAS URL 來實作驗權并上傳檔案。配置示例如下

  • Frontend 的URL是 /{file name} + SAS 令牌
  • Backend 的 Web Service URL是Storage URL+ 容器名稱
【Azure API 管理】讨論APIM是否适合直接存儲檔案到Azure Storage Account呢?

參考資料

發送請求Policy請參考:https://docs.azure.cn/zh-cn/api-management/api-management-sample-send-request

APIM Policy表達式中允許使用的.net framework類型請參考:https://docs.azure.cn/zh-cn/api-management/api-management-policy-expressions#net-framework-types-allowed-in-policy-expressions

Azure Storage - Put Blob: https://docs.microsoft.com/en-us/rest/api/storageservices/put-blob#request-body

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!

繼續閱讀