0

我正在尝试为天蓝色存储 blob 创建临时 url。我在以下这些命令的帮助下创建了 url。

 const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
                  
 sasUrls[serialNo] = `${containerClient.getBlockBlobClient(blobName).url}?${sasToken}`;

从第 2 行代码开始,sas url 已经形成了永久 uri。因此,即使我与某人共享具有一些到期时间的临时 url,他们也可以看到/获取 blob 的永久 uri,并且也可以在到期时间后使用它。那么临时链接有什么用呢?有什么方法/方法可以在临时链接中隐藏我的永久 uri 吗?

如果我错了,请指导我。

FY:我正在使用打字稿。

4

1 回答 1

-1

请检查以下提及的案例是否部分缩小了您的要求。

  1. 查看 sas 令牌是否可以替换为显示名称并在请求标头中发送(请参阅参考资料 i.)
  2. 您可以使用 cdn 使用缓存控制(如注释中所示)Manage expiration -cdn
  3. 具有公共可访问的缓存控制标头和设置为到期时间等于 sas expiry 的最大期限。

前任:

 blockBlob.Properties.CacheControl = "max-age=300, must-revalidate"; 
      
blockBlob.SetProperties(); //(300seconds)

或者

var headers = new SharedAccessBlobHeaders() { CacheControl = "max-age=" +  };

如果设置了private,可以设置max-age=0, no-cache, no-store

注意:使用这个如果客户端请求blob,它将不会使用cdn中的缓存blob(已经过期)。相反,它将直接请求存储在 blob 存储中的 blob。

  1. 您可以使用存储的访问策略来更改到期时间,或在发布后撤销它。

参考:

一世。 从 Azure 逻辑应用保护 SAS 令牌

ii. 管理存储的访问策略

iii. SO 参考缓存控制

于 2021-09-29T11:59:27.150 回答