【问题标题】:How to delete files from Azure Web App during VSTS deployment如何在 VSTS 部署期间从 Azure Web App 中删除文件
【发布时间】:2023-04-09 04:12:01
【问题描述】:

我有一个 Azure Web 应用程序,我将一些数据存储在它的持久存储中。通过我的 VSTS 发布定义,我想删除一个填充了数据的文件夹。该文件夹位于 D:\home\site\MyFolder

有没有一种方法可以在部署期间从 VSTS 发布定义中以编程方式删除该文件夹?每次进行新部署时,我都需要确保该文件夹为空,目前我通过 Kudu Web UI 手动执行此操作。

【问题讨论】:

  • 我建议您选择“在目标位置删除其他文件”并检查是否可以解决您的问题。
  • 这已经在我的 Release 定义中检查过了,但我要删除的文件夹位于 wwwroot (D:\home\site\wwwroot) 文件夹之外,并且不会被删除。

标签: azure azure-devops azure-web-app-service


【解决方案1】:

根据您的描述,您似乎想在新部署之前清空目标文件夹。

如果是,那么在使用 Azure App Service Deploy 任务时,并且您正在使用 Publish using Web Deploy 选项,那里是删除目标位置的附加文件的附加选项。

如果您选中此选项,部署过程将删除目标位置上正在部署的包中没有相应文件的所有文件。

换句话说,它将删除以前部署中不再需要的所有剩余文件。

详情请参阅Removing Deleted Files during Visual Studio Team Services Azure App Service Deploy Task

此外,您还可以尝试扩展Azure WebApp Virtual File System Tasks,它可以通过KUDU Virtual File System Rest API 从Azure Web Apps 中删除文件(Put & Get 即将推出)

如果还是不行,那么你可以写一个脚本来删除特定的文件夹。但是您需要确保服务帐户具有正确的权限来访问和删除 Azure 上的文件夹。

您也可以使用特定凭据删除项目,例如以下脚本:

Param(
  [string]$computerName = "computername",
  [string]$path ="E:\test\specific-folder"
)
$Username = "domain\user"
$Password = ConvertTo-SecureString "PasswordHere" -AsPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential($Username,$password)

Invoke-Command -computername $computerName {Remove-Item -path $args[0] -Recurse} -cred $cred  -ArgumentList $path

【讨论】:

  • 太棒了!我将您的良好信息与其他文档一起使用:blog.kloud.com.au/2016/08/30/… 由于我的文件夹位于 wwwroot 文件夹之外,因此我不能使用扩展名,但很高兴知道我可能会将那个文件夹移到里面然后利用扩展名。
  • 不起作用。我有一个 *.Mobile.cshtml 文件 - 在用于构建工件的源分支上删除了它 - 它仍然得到服务,因为它从未从服务器中删除
  • 我担心的是,为什么我可以通过开发工具下的“控制台”从路径 D:\home\site\MyFolder 完全删除文件和文件夹,或者我如何使用@987654325 @
  • 部署到 linux 应用服务器时,“在目标位置删除附加文件”不可用。如何删除 linux 应用服务上的文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 2019-07-12
相关资源
最近更新 更多