Linux Bash中传递变量给AzCopy命令时遇认证错误求助
问题解决:AzCopy命令中变量未解析导致SAS认证错误
问题根源
Bash中单引号(')会完全保留内部文本的字面含义,不会解析任何变量(比如$SAStoken)。你原来的命令用单引号包裹参数,导致AzCopy实际接收到的是未替换的变量名,而非真实的SAS令牌,因此触发"azure files only supports the use of SAS token authentication"错误。
修复方案
将命令中的单引号替换为双引号("),双引号允许Bash解析内部的变量,同时保留SAS令牌中的特殊字符(如&、%):
azcopy copy "$localfilepath" "https://$storageaccountname.file.core.windows.net/$filesharename/$filename?$SAStoken"
验证说明
替换后Bash会自动将所有变量展开为实际值,最终执行的命令和你手动替换变量后的有效命令完全一致,AzCopy就能正确识别SAS令牌完成认证。
内容的提问来源于stack exchange,提问作者Fr0zt
相关产品推荐
相关产品推荐

