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

Azure Blob存储创建文件夹层级时生成意外根目录链接问题

Azure Blob上传后层级出现根目录跳转链接问题

问题现象

现有Python脚本用于将文件上传至Azure Blob存储的指定文件夹层级,目标路径规则为顶层文件夹名/年/月/日/文件名.json,参考路径示例:data/Scanner/2022/07/15/scanner23_30_45_21.json。
脚本可根据当前日期自动生成对应层级路径,文件上传功能可正常运行,但上传完成后,文件夹结构的每一层都会额外出现一个指向容器层级根目录的链接,异常效果如下:
异常示意图
初步猜测该问题与Blob服务底层采用扁平存储方案、而非原生层级化存储的特性有关。

问题复现代码

import os
from pathlib import Path
from datetime import datetime
import json
from azure.storage.blob import BlobClient

# 生成带时间戳的文件名
datetime_string = datetime.utcnow().strftime("%Y_%m_%d-%I_%M_%S_%p")
# 按年、月维度生成存储路径层级
year_utc = datetime.utcnow().strftime("%Y")
month_utc = datetime.utcnow().strftime("%m")
filename_prefix =f"Scanner/{year_utc}/{month_utc}/{datetime_string}.json"
data = json.dumps("test_content_of_file",indent = 4)
blob = BlobClient.from_connection_string(conn_str="Connectionstringetc",
                                    container_name="data", blob_name= filename_prefix)                                         
blob.upload_blob(data, overwrite=False)

原因说明

  • 猜测方向完全准确:Azure普通Blob存储默认使用扁平命名空间,底层不存在真实的“文件夹”实体,各类存储浏览工具中展示的文件夹结构,是根据Blob名称里的/分隔符虚拟拆分出来的路径节点,并非存储账户中真实存在的目录对象。
  • 看到的每层根目录跳转链接,不是代码上传生成的真实文件,是存储浏览工具(包括Azure门户内置存储浏览面板、Azure官方存储资源管理器等)的内置UI渲染逻辑:当检测到虚拟路径分段没有对应的零字节目录占位Blob时,工具会自动生成这类导航节点,模拟传统文件系统的层级跳转交互,这类节点不占用存储容量,也不会影响实际Blob的访问路径正确性。
  • 上述上传代码本身无逻辑错误,只要最终上传的Blob完整路径符合预期,这些跳转项只是前端展示的UI元素,不属于存储数据异常。
  • 如果需要原生支持真实目录结构、消除这类虚拟导航节点,可以在创建存储账户时开启分层命名空间(ADLS Gen2模式),开启后存储会原生支持目录实体,浏览时就不会出现这类自动生成的跳转占位节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:09:16