问题标签 [azure-storage-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
16697 浏览

asp.net-mvc - 如何获取 Azure Files 文件的公共 URL?

我正在使用 Azure 文件来存储我的 Web 应用程序的文件,我之前在这里提到过。

我目前正在处理目录中的文件/子目录,并输出导航表,以便用户可以导航到子目录,并最终获取所述文件。我正在使用此 Azure 文档文章的“以编程方式访问文件共享”部分中描述的方法来执行此操作。

我的问题很简单,我如何从运行在 Azure 应用程序服务中的 Web 应用程序提供一个公共 URL,以便用户可以下载/查看文件?

请注意,我希望该文件不会自动下载,因为大多数文件都是.PDF,因此可以在浏览器中预览。

0 投票
1 回答
2556 浏览

asp.net - 如何在不暴露 URL 的情况下在 MVC 中提供文件?

我有一个树形查看器,允许用户浏览文件和子目录,当用户到达一个文件时,网站将转到https://website.com/path/subpath/file.pdf. 假设我可以确定用户正在查看文件,则会发生以下情况:

  • 控制器将生成一个 SAS 密钥以从 Azure 检索文件。
  • 控制器将获得一个 url:https://myaccount.files.core.windows.net/path/?=accesskey

虽然用户查看此访问密钥没有问题,但它最终会过期,并且为了用户为页面添加书签,我希望用户不要被重定向到 Azure 路径,而是让 ASP.NET 输出文件好像用户还在https://website.com/path/subpath/file.pdf

所以最后的问题基本上是:

如何在不强制下载且不显示文件路径/url的情况下输出文件?

0 投票
4 回答
3886 浏览

azure - 如何将 Azure 存储配置为在 Internet 上可用?

我使用 Azure 存储配置了 SMB 文件共享。我无法从 Azure 云外部连接到它。连接说明明确说

要连接到此文件共享,请从同一订阅和位置上的任何 Windows 虚拟机运行此命令:

如何将 Azure 文件存储配置为在公共 Internet 上可用?

0 投票
1 回答
1682 浏览

asp.net - 将文件从 Asp.Net 写入 Azure 文件存储失败

我有一个带有 IIS 设置的 Azure VM,它托管我的 ASP.Net 网站。

我希望能够通过使用普通的 Windows 类库 (System.IO) 从网络共享 (Azure 文件存储) 读取和写入文档/文件。我不想使用 Azure 存储客户端库或 Azure Storage Rest API。

如本文所述,我已安装共享并保留了我的凭据。

安装驱动器并保存我的凭据后,我将我的网站指向我的共享驱动器,以实现所有与文档管理相关的功能。下载文件完美无缺。但是,当我尝试创建文件夹或将文档写入网络共享时,我会收到错误消息。

我收到的错误是:

找不到路径“F:[RestOfThePathHere]”的一部分。堆栈跟踪:

[DirectoryNotFoundException: 找不到路径的一部分'F:\Test\MyThing\Clients\TheirStuff'。]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +338 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) +1578
System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) +213
MyStuff.FileHandling.FileExtenders.SaveToFile(Byte[] ByteArray, String Directory, String FileName) +116
MyStuff.TheirStuff.BLL.TheirStuffTestClient.RunEnquiry(ClientBase client, String resultType) +3776
MyStuff.MyThing.UI.Views.ClientController.CreditCheck(Int64 id) +42
lambda_method(Closure, ControllerBase, Object[]) +114
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 个参数)+39 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult,ActionInvocation innerInvokeState)+12 System.Web.Mvc.Async.WrappedAsyncResult 1。 CallEndDelegate(IAsyncResult asyncResult) +111 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +111 System.Web.CallHandlerExecutionStep.System.Web。 HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +2882 parameters) +242
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary


2.CallEndDelegate(IAsyncResult asyncResult) +139
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +112 System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +452 System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +15
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +37 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +241
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid

1.CallEndDelegate(IAsyncResult asyncResult) +19
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +51
System.Web.Mvc.Async.WrappedAsyncVoid

或者,当我使用 UNC 寻址时

找不到网络路径。StackTrace:[IOException:找不到网络路径。]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +14382132 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) +1578 System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) +213
MyStuff.FileHandling.FileExtenders.SaveToFile(Byte[] ByteArray, String Directory, String FileName) +116
MyStuff.TheirStuff.BLL.TheirStuffTestClient.RunEnquiry(ClientBase client, String resultType) +3776
MyStuff.MyThing.UI。 Views.ClientController.CreditCheck(Int64 id) +42
lambda_method(Closure, ControllerBase, Object[]) +114
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 个参数)+39 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult,ActionInvocation innerInvokeState)+12 System.Web.Mvc.Async.WrappedAsyncResult 1。 CallEndDelegate(IAsyncResult asyncResult) +111 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +111 System.Web.CallHandlerExecutionStep.System.Web。 HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +2882 parameters) +242
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary


2.CallEndDelegate(IAsyncResult asyncResult) +139
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +112 System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +452 System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +15
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +37 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +241
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid

1.CallEndDelegate(IAsyncResult asyncResult) +19
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +51
System.Web.Mvc.Async.WrappedAsyncVoid

更新 - 我当前的代码

MVC 控制器方法

IFileHandler.SaveFile 实现

PS - 请原谅糟糕的代码和公然无视 C# 编码标准。我写这篇文章的时候是个菜鸟。但是,当用于处理本地文件存储时,此代码还没有给我带来任何问题。

0 投票
4 回答
38485 浏览

azure - 浏览器中的 Azure 文件存储 URL 显示 InvalidHeaderValue

我正在尝试访问 Azure 中为 Azure 文件存储格式的文件提供的 URL,但是我在下面收到此错误。有可能得到这个吗?为什么他们会在无用的情况下提供公共 URL?另外,如何直接从 IIS 访问它?

0 投票
1 回答
449 浏览

azure - 是否可以在 WebJobs VM 上创建 azure 文件共享挂载?

我可以使用 net-use 在Webjobs 虚拟机中创建挂载吗?它通常有C:&D:驱动器。我得到一个access denied错误!

0 投票
7 回答
12079 浏览

c# - 如何删除 Azure 文件存储文件夹中的所有文件?

我正在尝试如何删除 Azure 文件存储中文件夹中的所有文件。

CloudFileDirectory.ListFilesAndDirectories()返回一个IEnumerableIListFileItem但这并没有太大帮助,因为它没有文件名属性或类似属性。

这是我到目前为止所拥有的:

如何将 an 更改IListFileItem为 aCloudFile以便我可以打电话myfile.Delete()

0 投票
1 回答
7210 浏览

c# - 从 ASP.NET 应用程序访问 Azure 存储帐户文件共享

我有一个 ASP.NET 应用程序,需要从 Azure 文件共享读取和写入。我无法直接在 Azure 文件共享上设置权限,而是拥有存储帐户密钥和主访问密钥。

我可以在我的服务器上使用“net use”命令将文件共享挂载为驱动器。由于对上一个问题的回答我知道 ASP.NET 将无法看到已安装的驱动器。

我能够在我的本地机器上让它工作,在我的本地用户下运行 IIS 并将天蓝色存储帐户文件共享添加到凭据管理器,但这在服务器上不起作用,所以我错过了一些谜。

在服务器上,如果我尝试使用

这在 ASP.NET 中不起作用(我怀疑这是因为 ASP.NET 无法对共享进行身份验证)。从 LINQpad 运行此代码确实有效并返回 true。

我已尝试将凭据添加到凭据管理器并在我正在运行凭据管理器的用户下运行我的应用程序池,但我仍然从 Directory.Exists() 返回“假”。

为什么我在服务器上看不到目录?

0 投票
2 回答
191 浏览

powershell - 使用 WinRM 和网络使用附加到 Azure ShareFile

语境:

我已经从azure-quickstart-template 中的201-winrm-windows设置了 ARM 部署。

  • 部署运行良好
  • 我可以使用 WinRM 访问 VM
  • 我可以使用 WinRM 远程运行脚本

问题是我正在尝试在该 VM 上设置存储文件。官方文档要求运行此命令:

问题:

  • 当命令在本地运行时(VM 上的本地 powershell),我有一条成功消息并出现挂载。
  • 当命令通过 WinRM 运行时,我有相同的成功消息,但是当我连接到 VM 时,我无法访问挂载。

我的代码:

和供应文件.\provision.ps1


笔记:

  • 我的问题与类似,但作者没有回应。
0 投票
2 回答
4400 浏览

azure - Azure Web 应用保存临时文件限制

我需要在我的 Azure Web 应用程序(应用程序服务)上临时存储文件。我不必在 Web 应用程序实例之间共享这些文件。

我已经阅读(在kudu wiki中)我可以使用 d:\local 进行此类存储,但是对于可以存储在那里的数据量存在什么限制?

我还读到它取决于网络应用程序的选定级别(sku)(基本、标准、高级),但我没有发现任何确切的大小限制。

有没有办法在运行时使用代码来确定这一点

更新:
当我在我的基本网络应用程序上检查 Kudo 中的环境选项卡时,它会列出

但是,如果我使用System.IO.DriveInfo.GetDrives()D 驱动器列表进行检查

(Kudo 比 d:\local 驱动器显示的要多得多。)
另一个特殊的事情是,您可以在 Kudo 控制台中导航文件系统,但我在 Web 应用程序上创建的文件无法在那里找到。