在没有SAS令牌的情况下访问存储在Azure文件存储中的文件

时间:2018-12-17 12:37:58

标签: c# .net azure fileshare

使用Azure云文件共享API,我能够创建文件共享以及目录,文件夹和文件。它们都正确保存在文件共享中。 从浏览器中,我可以使用URI + SAS令牌(为文件共享生成)查看内容。因此,在.NET中,访问Azure文件的最佳方法是什么?没有SAS令牌,我们能否访问文件(不是blob)? SAS令牌是强制性的吗?如果是这样,什么时候才是合适的时间生成令牌? (每次访问文件时?)

2 个答案:

答案 0 :(得分:1)

有3种访问存储的方式:

1)使用主/根密钥。我不建议使用这种方法,因为主密钥可以完全访问存储帐户。

2)使用SAS密钥。这是一个很好的方法,因为您可以限制密钥给定的访问量。请参阅this site的最佳做法部分。您需要先生成密钥,然后才能访问存储并将其安全地存储在配置中。请注意,斑点是您的文件。 Blob被组织到Blob存储容器中,然后位于您的存储帐户中。

3)如果要使用新的Azure Data Lake Gen 2存储(ADLS Gen 2),则可以将Azure Active Directory身份验证与服务帐户或托管服务身份(MSI)结合使用。请注意,ADLS Gen 2仍在预览中。

答案 1 :(得分:0)

如果尝试访问/操作c#/。net中的文件共享,则不是必须使用SAS令牌。

您可以仅使用存储帐户名和帐户密钥进行身份验证,然后按照此官方doc分别操作文件共享,例如创建/删除文件共享/目录/文件。

除了将帐户名/密钥存储在上述文档中提到的配置文件中之外,您还可以直接在c#代码中使用它们,例如以下内容(.net框架控制台项目):

var nav = document.getElementById('nav');
navA = nav.getElementsByTagName('li');
for (var i = 0; i < navA.length; i++) {
    navA[i].children[ 0 ].style.color = "white";
    break;
}