如何避免AzCopy上传本地文件至Azure Blob Storage时自动创建子文件夹?
解决AzCopy上传时自动创建本地文件夹子目录的问题
这是AzCopy的默认行为导致的——当你指定本地文件夹路径时,它会将整个文件夹结构(包括文件夹本身)复制到目标存储中。要让本地vacation文件夹内的JPG文件直接上传到目标的jpg文件夹下,你只需要调整本地路径的写法即可。
问题根源
你当前的本地路径是C:/local/vacation,AzCopy会把这个文件夹作为一个层级单元处理,因此会在目标目录下创建同名的vacation子文件夹,并将文件放在其中。
解决方案:修改本地路径,添加/*
在本地文件夹路径末尾加上/*,告诉AzCopy要复制的是该文件夹内部的所有内容,而不是文件夹本身。同时要确保你的目标SAS URI是完整的(必须包含?开头的权限参数部分)。
修改后的完整命令如下:
$localFolder = "C:/local/vacation/*" $targetFolder= "https://xxx.blob.core.windows.net/files/images/jpg?{你的SAS参数}" azcopy copy $localFolder $targetFolder --include-pattern "*.jpg" --recursive=true
关键说明
- 添加
/*后,AzCopy会直接读取C:/local/vacation下的所有JPG文件(包括子文件夹里的,因为你加了--recursive=true),并将它们上传到目标的jpg文件夹根目录,不会创建额外的vacation子目录。 - 确认目标SAS URI拥有写入权限(至少包含
w权限),否则会上传失败。 - 如果不需要递归上传子文件夹里的文件,可以去掉
--recursive=true参数。
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

