You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AzCopy上传目录至Blob存储,能否保留结构并按文件属性设元数据?

问题

需要将本地带层级结构的目录上传至Azure Blob存储,要求:

  • 保留原文件夹结构
  • 为每个文件保留最后修改时间,存入文件元数据中

已知AzCopy支持为单个文件指定元数据(示例命令如下),但不想通过PowerShell脚本循环逐个处理文件,询问AzCopy是否支持基于上传文件自身属性批量设置元数据。

本地目录结构示例:

PS C:\UploadFolder> tree /F
C:.
└───DocumentsForUpload
    └───Identifier
        ├───Identifier2-1
        │       doc1.pdf
        │
        ├───Identifier2-2
        │       doc1.docx
        │       doc2.doc
        │
        └───Identifier2-3
                etc

单个文件设置元数据示例命令:

azcopy copy "individual_file_path" "https://xxx.blob.core.windows.net/test1/aaa1.txt?sasToken" --metadata "lastmodified=2023-08-15 04:43:36"
答案

AzCopy 支持批量将本地文件的最后修改时间同步到Blob存储,无需逐个调用命令,同时能完整保留原目录结构,具体实现如下:

  1. 核心参数说明
    使用azcopy copy时,通过--preserve-smb-info或--preserve-last-modified-time参数,可自动将本地文件的最后修改时间同步到Blob的属性/元数据中,无需手动指定。

  2. 完整批量上传命令
    优先推荐同步完整SMB属性(含最后修改时间)的命令:

    azcopy copy "C:\UploadFolder\DocumentsForUpload\*" "https://xxx.blob.core.windows.net/test1?sasToken" --recursive --preserve-smb-info
    

    若仅需同步最后修改时间,可使用更轻量化的参数:

    azcopy copy "C:\UploadFolder\DocumentsForUpload\*" "https://xxx.blob.core.windows.net/test1?sasToken" --recursive --preserve-last-modified-time
    
  3. 关键参数解析

    • --recursive:递归遍历本地层级目录,自动在Blob存储中重建相同的文件夹结构
    • --preserve-smb-info:将本地文件的最后修改时间、创建时间、权限等SMB属性同步到Blob的元数据与系统属性中
    • --preserve-last-modified-time:仅同步文件的最后修改时间到Blob的系统Last-Modified属性,满足基础时间保留需求
  4. 注意事项

    • AzCopy会自动将最后修改时间写入Blob的系统Last-Modified字段,该字段可直接被Azure服务识别;若必须存入自定义lastmodified元字段,目前AzCopy无直接批量映射参数,但常规场景下系统字段足以替代
    • 确保使用的SAS令牌拥有写入文件及设置元数据的权限

内容的提问来源于stack exchange,提问作者dropsoid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:06:14