Asp.net mvc 当托管在Azure网站中时,asp MVC网站中的哪个文件夹可用于存储和检索除App_数据之外的文件?

Asp.net mvc 当托管在Azure网站中时,asp MVC网站中的哪个文件夹可用于存储和检索除App_数据之外的文件?,asp.net-mvc,azure,azure-web-app-service,blobstorage,Asp.net Mvc,Azure,Azure Web App Service,Blobstorage,我刚刚完成了我的asp MVC 5网站,它可以上传、显示和下载文件。脱机时,我将文件上传到根目录中的随机文件夹中,如~/assest/images等,效果非常好 然后我部署到WindowsAzure网站服务,并开始意识到根目录不再可访问。我开始做研究,发现只有App_数据才可以存储文件。唉,这不是一个好的解决方案,我们无法检索文件(如图像)以显示在razor视图中 我还发现了BLOB存储,它看起来很棒,但没有足够的教程,我无法成功地使用它。大多数都是针对MVC web角色的,而在我的例子中是MV

我刚刚完成了我的asp MVC 5网站,它可以上传、显示和下载文件。脱机时,我将文件上传到根目录中的随机文件夹中,如~/assest/images等,效果非常好

然后我部署到WindowsAzure网站服务,并开始意识到根目录不再可访问。我开始做研究,发现只有App_数据才可以存储文件。唉,这不是一个好的解决方案,我们无法检索文件(如图像)以显示在razor视图中

我还发现了BLOB存储,它看起来很棒,但没有足够的教程,我无法成功地使用它。大多数都是针对MVC web角色的,而在我的例子中是MVC web站点

现在,我想找到另一个选择,是否有任何特殊的文件夹,或解决方法,使一个折叠在根目录中,可以存储文件和检索它们?事实上,我的应用程序只需要几张图片和PDF就可以存储


谢谢

我不会为azure网站或web服务构建依赖本地存储的解决方案。您无法扩展此解决方案,而且VM可能会重新成像等

我会看看blob存储,我将上传限制在4mb以下,因为在将它们写入blob存储之前,我会在服务器上验证它们,但我相信您可以将其直接流式传输到存储中


以下是一个可能有助于您入门的解决方案。

我不希望为azure网站或web服务构建依赖本地存储的解决方案。您无法扩展此解决方案,而且VM可能会重新成像等

我会看看blob存储,我将上传限制在4mb以下,因为在将它们写入blob存储之前,我会在服务器上验证它们,但我相信您可以将其直接流式传输到存储中


以下是一个可能有助于您开始的示例。

您不应该使用应用程序数据来存储使用Azure网站上传的文件。您只能获得有限的空间,如果您将站点扩展到更多实例,则上载的文件将仅在上载它们的实例上可用

处理上传文件的正确方法确实是使用Blob存储。您可以从您的网站轻松地使用它。只需安装Azure.NET存储客户端库(这是)

有一个关于使用Azure.NET存储客户端库的完整教程,位于

通过公开blob容器,您可以轻松地在站点上显示上载的图像。然后,您可以直接链接到blob容器中的图像-它将有一个类似

https://your storage account name.blob.core.windows.net/your blob container name/filename.jpg


你不应该使用App_数据来存储使用Azure网站上传的文件。您只能获得有限的空间,如果您将站点扩展到更多实例,则上载的文件将仅在上载它们的实例上可用

处理上传文件的正确方法确实是使用Blob存储。您可以从您的网站轻松地使用它。只需安装Azure.NET存储客户端库(这是)

有一个关于使用Azure.NET存储客户端库的完整教程,位于

通过公开blob容器,您可以轻松地在站点上显示上载的图像。然后,您可以直接链接到blob容器中的图像-它将有一个类似

https://your storage account name.blob.core.windows.net/your blob container name/filename.jpg


如果您不希望需要太多存储空间,您可以将文件存储在站点文件夹中的任何位置。我不知道为什么你会看到一个错误,如果你上传文件到APP_数据以外的任何地方,你应该在任何地方都有完全的写访问权限

与其他一些人的评论相反,如果您将文件存储在站点的本地存储中,那么您的文件在VM崩溃时是安全的,并且可以立即供所有其他实例使用。这是因为文件实际上并没有存储在本地VM上,这只是一种错觉。(唯一的例外是,如果您将内容存储在%TEMP%文件夹中。这些内容实际上保存在VM上,并且可以随时消失)


也就是说,如果您需要大量数据I/O或大量存储,blob存储是最好的选择。

如果您不需要大量存储,您可以将文件存储在站点文件夹中的任何位置。我不知道为什么你会看到一个错误,如果你上传文件到APP_数据以外的任何地方,你应该在任何地方都有完全的写访问权限

与其他一些人的评论相反,如果您将文件存储在站点的本地存储中,那么您的文件在VM崩溃时是安全的,并且可以立即供所有其他实例使用。这是因为文件实际上并没有存储在本地VM上,这只是一种错觉。(唯一的例外是,如果您将内容存储在%TEMP%文件夹中。这些内容实际上保存在VM上,并且可以随时消失)


也就是说,如果您需要大量数据I/O或需要大量存储,blob存储是最好的选择。

谢谢您,先生!现在我比以往任何时候都更有信心继续使用blob存储:数据这部分不是真的:“上传的文件将只在上传的实例上可用!”。当您将文件上载到Azure网站中的文件夹时,所有实例都可以立即使用这些文件(除非您将它们放在%TEMP%文件夹中)。除此之外,我同意你等一下,我刚刚意识到“上传的文件只在上传的实例上可用!”这句话意味着我们确实可以将文件上传到本地文件夹?如果是这样的话,你能告诉我怎么做吗@亚历克斯沃伦谢谢你,先生!现在我比以往任何时候都更有信心继续使用blob存储:D这部分不是真的:“上传的文件