Azure Blob 存储 SAS ExpireOn 不起作用
Posted
技术标签:
【中文标题】Azure Blob 存储 SAS ExpireOn 不起作用【英文标题】:Azure Blob Storage SAS ExpireOn not working 【发布时间】:2021-10-28 20:45:11 【问题描述】:已解决,原来是浏览器缓存
我正在尝试从 Azure Blob 存储中获取图像,由于某种原因,ExpireOn 无法正常工作,我可以正常访问该图像,但在过期时间过后它不会使链接失效。
import BlobSASPermissions, generateBlobSASQueryParameters, StorageSharedKeyCredential from "@azure/storage-blob";
export async function BlobService2()
const accountName = process.env.ACCOUNT_NAME;
const containerName = process.env.CONTAINER_NAME;
const blobName = process.env.BLOB_NAME;
const accountKey = process.env.ACCOUNT_KEY;
const SharedKeyCredential = new StorageSharedKeyCredential(accountName , accountKey)
const blobSAS = generateBlobSASQueryParameters(
containerName, // Required
blobName, // Required
permissions: BlobSASPermissions.parse("r"),
startsOn: new Date(), // Required
expiresOn: new Date(new Date().getTime() + 5*60000)
,SharedKeyCredential).toString();
const URL = `https://$accountName.blob.core.windows.net/$containerName/$blobName?$blobSAS`
console.log(URL);
【问题讨论】:
请检查浏览器是否没有缓存数据。我经常看到这种情况发生。 如果您在没有 blobSAS 的情况下访问此 URL 会发生什么? curl -v https://$accountName.blob.core.windows.net/$containerName/$blobName 当然用实际值替换。 @JohnHanley - OP 很可能会收到 404 错误(假设 blob 容器的 ACL 是私有的)。 @GauravMantri - 有时用户忘记管理访问控制。收集数据以确定真正的问题并获得 OP 思维的一部分。 JohnHanley 我收到此错误:指定的资源不存在。 @GauravMantri 是的!非常感谢,我尝试使用其他浏览器,但我得到无效链接,非常感谢! 【参考方案1】:@Henrique E,感谢您确认您的问题已通过清除浏览器缓存得到解决。
感谢@GauravMantri 和@JohnHanley 提供您的建议。
【讨论】:
以上是关于Azure Blob 存储 SAS ExpireOn 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法重新生成 Azure Blob 存储 SAS 令牌
将文件从浏览器上传到 Azure Blob 存储,无需 SAS 密钥
Azure CDN URL使用令牌身份验证和Blob存储SAS重写规则
Azure Blob 存储 SAS ExpireOn 不起作用