我試圖將一個blob從一個uri複製到另一個(都在相同的存儲帳戶內),兩者都有一個用於證書的SAS令牌。這適用於沒有IP限制的SAS令牌,但當源BLOB SAS令牌受IP限制時會失敗。使用SAS令牌的Azure副本blob(具有IP限制)403禁止
注:這不是失敗,因爲我已經拿到了IP錯誤,其他的斑點職能的工作,即列表,刪除,上傳等
示例代碼:
Uri sourceBlobUri = new Uri("https://mystorage.blob.core.windows.net/a-container/a.json");
Uri targetBlobUri = new Uri("https://mystorage.blob.core.windows.net/a-container-archive/a.json");
var prodTokenSource = @"A_SAS_TOKEN_WITH_A_IP_RESTRICTION";
var prodTokenArchive = @"A_SAS_TOKEN_WITH_A_IP_RESTRICTION";
StorageCredentials sourceCredentials = new StorageCredentials(prodTokenSource);
StorageCredentials targetCredentials = new StorageCredentials(prodTokenArchive);
CloudBlockBlob sourceBlob = new CloudBlockBlob(sourceBlobUri, sourceCredentials);
CloudBlockBlob targetBlob = new CloudBlockBlob(targetBlobUri, targetCredentials);
await targetBlob.StartCopyAsync(sourceBlob); //Fails 403 error
一個猜測是,複製請求來自Azure內部,因此IP地址被阻止?我應該將源SAS令牌配置爲接受來自Azure內部的IP範圍嗎? 有沒有其他方法可以複製允許使用SAS令牌的blob?
好的感謝。想知道這是否應該被視爲API中的錯誤?該功能在那裏,但不符合文檔的說法。也許我應該請求複製方法保留原始憑證。 –
我不會將這稱爲bug,因爲該功能按預期工作。您希望從特定IP地址使用SAS URL,這就是它的作用。 –