Azure CLI上传本地文件夹到存储容器的destination-path参数疑问
--destination-path 参数作用解答 --destination-path 不是存储容器名称,你当前的命令存在参数误用。
参数定义区分
--destination(简写-d):用于指定目标存储容器的名称,是存储账户下的顶层Blob容器定位参数。--destination-path:容器内部的Blob路径前缀,会被自动拼接在每个上传生成的Blob名称开头,作用是指定文件存放在容器内的哪个虚拟子目录下(Blob存储为扁平结构,不存在原生文件夹层级,虚拟目录通过Blob名称的路径前缀实现)。
效果演示
假设本地源目录./local_dir下存在两个文件:report.pdf、raw/data.csv
- 不指定
--destination-path时,执行命令:
上传后的Blob路径为(文件直接存于容器根目录):az storage blob upload-batch --destination target-container --account-name my-storage-acct --source ./local_dirtarget-container/report.pdf target-container/raw/data.csv - 指定
--destination-path 2024/finance时,执行命令:
上传后的Blob路径为(所有文件前自动拼接前缀,相当于存于容器内az storage blob upload-batch --destination target-container --account-name my-storage-acct --destination-path 2024/finance --source ./local_dir2024/finance虚拟目录下):target-container/2024/finance/report.pdf target-container/2024/finance/raw/data.csv
你的命令问题修正
你将容器名传递给--destination-path的写法,会导致所有文件被上传到目标容器下一层与容器同名的虚拟子目录中,额外多套了一层无用路径,不符合直接上传到指定容器的预期。
如果仅需要将本地文件夹上传到指定容器的根目录,无需传入--destination-path参数,正确命令格式为:
az storage blob upload-batch --destination <你的目标容器名称> --account-name <你的存储账户名称> --source <本地文件夹的完整路径>
仅当你需要把文件存到容器内部的特定虚拟子目录时,才需要使用--destination-path指定对应的子路径前缀。
内容的提问来源于stack exchange,提问作者bombombs
相关产品推荐
相关产品推荐

