Azure服务器上的SMB客户端未从Azure存储中删除文件

问题描述

我有一个在Ubuntu Azure服务器上运行的flask webapp。我也有一个Azure存储帐户,并且我要使用SMB从Web应用程序访问存储。到目前为止,该方法一直有效,可以在服务器上添加和更新文件,但是我尝试删除一个文件,但该方法不起作用。没有错误或任何内容,它什么也没做,并且文件仍在服务器上。我在本地尝试了该命令,效果很好。我做错了什么,如何解决这个问题。这是我一直在使用的命令:

smbclient //name.file.core.windows.net/website  -mSMB3 -e -Uname%password -c 'rm tempplugins/test2.ini'

解决方法

这可能无法解决您的确切问题,但我试图从运行 CentOS 的 Azure VM 对 Azure 存储帐户上的文件共享执行操作,但我遇到了几个不同的问题。我花了一段时间才解决这些问题。

就我而言,我不得不使用反斜杠,但我必须将它们加倍,以便正确转义它们。示例:

smbclient \\\\storageaccount.file.core.windows.net\\sharename

此外,我们没有使用集成的活动目录,因此我们必须使用存储帐户名称作为用户名,并且必须以“Azure”作为“前缀”,例如“Azure\storageaccount”。并且不要忘记反斜杠必须加倍!此外,密码是存储帐户密钥。示例:

smbclient \\\\storageaccount.file.core.windows.net\\sharename -U Azure\\storageaccount%key

我使用“-d”选项来调试 smbclient 的命令行选项。但是,就我而言,“-d”选项必须位于命令的末尾,否则会受到干扰。如果不是“-d”提供的线索,我永远不会得到它的工作。示例:

smbclient \\\\storageaccount.file.core.windows.net\\sharename -U Azure\\storageaccount%key -d

这是一个简单的单行式,显示了 Azure 存储帐户上的文件共享目录。示例:

smbclient \\\\storageaccount.file.core.windows.net\\sharename -U Azure\\storageaccount%key -c dir -d

我希望这能帮助其他人,因为我必须花 2 到 3 个小时才能解决这个问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...