You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP应用中用C#生成Azure Blob文件可分享下载链接是否可行?

可行!Azure Blob存储生成可分享下载链接的实现方案

当然可行!Azure Blob存储本身就支持创建无需依赖你的UWP应用、他人可直接访问的下载链接,完全满足你的需求。甚至不需要迁移到Google Drive——基于你已有的Blob上传功能就能轻松扩展,下面给你详细讲两种常用实现方式:

方式一:共享访问签名(SAS)推荐,灵活又安全

这是最推荐的方案,你可以精确控制链接的有效期、访问权限、IP限制等,既能实现分享需求,又能避免敏感数据泄露。具体步骤是:文件上传完成后,针对该Blob生成SAS令牌,再和Blob的基础URL拼接成完整的下载链接。

UWP代码示例使用Azure.Storage.Blobs NuGet包

using Azure.Storage.Blobs;
using Azure.Storage.Sas;
using System;

// 假设你已经完成文件上传,获取到目标Blob的BlobClient实例
BlobClient targetBlob = yourBlobContainer.GetBlobClient("uploaded-file-name.ext");

// 配置SAS令牌的规则
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
    BlobContainerName = targetBlob.BlobContainerName,
    BlobName = targetBlob.Name,
    ExpiresOn = DateTimeOffset.UtcNow.AddDays(7), // 链接7天后失效,可按需调整
    Protocol = SasProtocol.Https // 强制HTTPS访问,提升安全性
};

// 仅授予下载权限,避免被篡改或删除
sasBuilder.SetPermissions(BlobSasPermissions.Read);

// 生成SAS令牌需要存储账户的密钥
var sharedKeyCredential = new Azure.Storage.StorageSharedKeyCredential(storageAccountName, storageAccountKey);
string sasToken = sasBuilder.ToSasQueryParameters(sharedKeyCredential).ToString();

// 拼接得到最终可分享的下载链接
string shareableDownloadUrl = $"{targetBlob.Uri}?{sasToken}";

方式二:公开访问级别简单但需谨慎

如果你的文件是非敏感的公开资源,也可以直接设置Blob或其所在容器的公开访问级别:

  • 将容器权限设为Blob(匿名读取权限),容器内所有Blob的原始URL都可直接作为下载链接
  • 或单独设置单个Blob为公开访问,仅该文件可被匿名访问

⚠️ 注意:这种方式没有权限和时间限制,一旦设置任何人都能访问,不适合敏感文件。

关于Google Drive API的顾虑

你之前考虑的Google Drive方案虽然也能实现,但完全没必要迁移数据——Azure Blob的方案和你现有的UWP上传功能无缝集成,代码改动量小,维护成本更低,更适合你的当前场景。

内容的提问来源于stack exchange,提问作者Osamuyimen Osagiede Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:50:56