提问人:Michael K 提问时间:9/23/2023 更新时间:9/23/2023 访问量:22
如何获取嵌入在电子邮件中的zipfile链接以供下载?
How can you get a zipfile link embedded in an email to download?
问:
以下代码创建一个链接,其中包含 Blob 存储容器中的 zip 文件:
public string GetPublicUrl(string containerName, string blobName, DateTime expiry, BlobSasPermissions permissions = BlobSasPermissions.Read, string fileName = null, bool isAttachment = false)
{
var containerClient = GetContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(blobName);
if (!blobClient.CanGenerateSasUri) return null;
var sas = blobClient!.GenerateSasUri
(
new BlobSasBuilder(BlobSasPermissions.Read, expiry)
{
ContentDisposition = !string.IsNullOrEmpty(fileName) ? $"{(isAttachment ? "attachment; " : "")}filename={HttpUtility.UrlEncode(fileName)}; filename*=UTF-8''{Uri.EscapeDataString(fileName)}" : null,
CacheControl = "no-cache"
}
);
return sas.ToString();
}
然后,我继续将此链接嵌入到我通过 Sendgrid 发送的电子邮件中。
我遇到的问题是创建的链接无法在所有机器上打开和下载文件,尤其是 mac 计算机。将打开一个新选项卡,但随后立即关闭,而不下载文件。
当我复制链接并将其直接粘贴到新选项卡中时,zip 文件将下载。
有人有什么建议吗?
答:
0赞
Michael K
9/23/2023
#1
经过一番努力,在电子邮件中添加标签奏效了。所以现在链接看起来像这样:clicktracking=off
<a>
<a href="@Model.Url" clicktracking=off>Files</a>
我不确定为什么这有效,但是嘿!
评论