我的应用程序允许用户输入 Azure Blob 存储 SAS URL。我将如何去验证它?我正在使用Azure 存储 Blob 客户端库,并且似乎没有任何方法可以在不实际执行 Blob 操作(我不想这样做)的情况下验证 SAS URL。
验证操作可以是异步的,并在必要时涉及 API 调用(即可以通过按钮触发)。
public class SASURLValidator
{
public async Task<bool> ValidateSASURL(string sasURL)
{
// What goes here?
}
public async Task Test()
{
var result = await ValidateSASURL("https://blobstorageaccountname.blob.core.windows.net/containerName?sp=w&st=2022-02-15T02:07:49Z&se=2022-03-15T10:07:49Z&spr=https&sv=2020-08-04&sr=c&sig=JDFJEF342JDSFJIERJsdjfkajiwSKDFJIQWJIFJSKDFJWE%3D")
// result should be true if the above is a valid SAS
}
}
Run Code Online (Sandbox Code Playgroud) .net c# azure-storage azure-blob-storage shared-access-signatures
我一直在尝试开发 Blazor WebAssembly 应用程序(我正在尝试使用 .NET Standard 2.1 和 .NET 5.0),我的目标是允许用户使用选择文件InputFile
并将该文件上传到 Azure Blob 存储容器。我四处寻找并遵循不同的指南,但没有成功。我遇到的问题通常与安全相关,例如 CORS(尽管已完全设置)、授权失败以及 System.PlatformNotSupportedException:此平台不支持 System.Security.Cryptography.Algorithms。
不管这是否是好的做法;是否可以直接从 blazor 应用程序上传到 blob 存储?我尝试过的一种方法是通过SAS令牌。它通过控制台应用程序运行,但不能通过 BLAZOR 应用程序运行。
<label for="browseData"><b>Browse File</b></label>
<p><InputFile id="browseData" OnChange="@OnInputFileChange" /></p>
private async Task OnInputFileChange(InputFileChangeEventArgs e)
{
var maxAllowedFiles = 1;
var inputFile = e.GetMultipleFiles(maxAllowedFiles).First();
var stream = inputFile.OpenReadStream();
await StorageService.UploadFileToStorage(stream, "sftp-server", inputFile.Name);
}
Run Code Online (Sandbox Code Playgroud)
仓储服务
public class AzureStorageService
{
private readonly IAzureStorageKeyService _azureStorageKeyService;
public AzureStorageService(IAzureStorageKeyService azureStorageKeyService)
{
_azureStorageKeyService = azureStorageKeyService;
}
public async Task<Uri> UploadFileToStorage(Stream stream, string …
Run Code Online (Sandbox Code Playgroud) file-upload azure-blob-storage blazor shared-access-signatures