【问题标题】:Delete and upload files into Azure webapp local storage programatically以编程方式删除文件并将其上传到 Azure Web 应用本地存储
【发布时间】:2016-12-21 14:01:01
【问题描述】:

我已经在 Azure 中部署了一个网站,我想从 c# 桌面应用程序中以编程方式访问此路径:“D:\home\site\app”并删除所有文件并以编程方式上传新文件。 我已经搜索并找到了很多方法,但所有方法都适用于 AzureStorage 或使用 Kudu consolFTP 而我真正想要的是访问以编程方式部署网站的本地存储,并以编程方式对文件进行一些编辑。

【问题讨论】:

  • 不确定您的问题是什么,因为您可以使用标准 I/O 库访问 Web 应用的本地存储。 Azure 存储是不同的东西(blob/etc),它确实需要使用 API/SDK,但......不是 Web 应用本地存储。
  • 是的,你说得对,实际上我想要的是在部署 Web 应用程序后,我执行一些独立于 Web 应用程序的代码,它会删除应用程序数据文件夹中的所有文件并上传新文件。

标签: c# .net azure azure-web-app-service


【解决方案1】:

当然,站点控制管理器 (Kudu) 有一个 API,即 VFS API: https://github.com/projectkudu/kudu/wiki/REST-API#vfs

您可以使用其中任何一种进行身份验证:

  • 您从 STS 获得的 Bearer 令牌(ARMClient 中的参考实现)
  • 站点级凭据(Web 应用程序 → 属性下的长而丑陋的凭据)
  • Git/FTP 凭据(订阅级别)


示例用法(使用站点级凭据):


# Line breaks brutally used to improve readability
# /api/vfs/ is d:\home
# Append path as necessary, i.e. /api/vfs/site/app

$ curl -k https://$are-we-eating-too-much-garlic-as-a-people:6sujXXX
      XXXXXXq7Zc@are-we-eating-too-much-garlic-as-a-people.scm.azurewebsites.net
      /api/vfs/site/wwwroot/ill-grab-this-file-over-vfs-api.txt

There, i did it.

我在这里假设您想从外界做所有这些 - 因为您没有明确说明其他情况。

【讨论】:

  • 是的,这就是我需要的,但我需要用 c# 编写代码,我在网上搜索了一个示例或小教程,但一无所获。
【解决方案2】:

嗯,在我的天蓝色代码中。我的任务是保存一个 excel 文件并将其内容上传到 SQL 服务器。 我使用这个简单明了的访问主页。

string fileToSave = string.Format("{0}\\{1}", HostingEnvironment.MapPath(@"~\Temp"), FileUpload.FileName);

            if (!Directory.Exists(HostingEnvironment.MapPath(@"~\Temp")))
                Directory.CreateDirectory(HostingEnvironment.MapPath(@"~\Temp"));

 FileUpload.PostedFile.SaveAs(fileToSave);

您可以使用类似的方法来删除和保存新文件或其他 I/O 操作。

【讨论】:

  • 是的,它确实有效,但在我的情况下不行,因为我使用其他应用程序(桌面应用程序)来访问我在 azure webApp 上部署的第一个应用程序并进入 appdata 文件夹进行编辑跨度>
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 2014-10-22
  • 2019-11-05
  • 1970-01-01
  • 2016-01-21
  • 2016-10-15
  • 2012-03-22
  • 1970-01-01
相关资源
最近更新 更多