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

上传文件至Azure Blob存储容器时如何排除子文件夹

解决Windows下Azure Blob上传带本地路径层级的问题

问题根源是你在指定Blob名称时传入了本地文件的完整路径,Windows的路径格式会被当作Blob的层级结构。要统一只上传文件名,只需提取文件的纯文件名作为Blob的name参数即可。

具体修改方法

方法1:使用os.path.basename()

通过该方法提取纯文件名,自动兼容Windows和Mac的路径差异:

import os
from azure.storage.blob import BlobServiceClient

def upload_blob_file(self, blob_service_client: BlobServiceClient, container_name: str, local_file_path: str):
    container_client = blob_service_client.get_container_client(container=container_name)
    # 提取仅文件名部分
    blob_name = os.path.basename(local_file_path)
    with open(file=local_file_path, mode="rb") as data:
        blob_client = container_client.upload_blob(name=blob_name, data=data, overwrite=True)

方法2:使用pathlib(Python 3.4+推荐)

用更现代的路径处理库,跨系统兼容性更稳定:

from pathlib import Path
from azure.storage.blob import BlobServiceClient

def upload_blob_file(self, blob_service_client: BlobServiceClient, container_name: str, local_file_path: str):
    container_client = blob_service_client.get_container_client(container=container_name)
    # 直接获取文件名
    blob_name = Path(local_file_path).name
    with open(file=local_file_path, mode="rb") as data:
        blob_client = container_client.upload_blob(name=blob_name, data=data, overwrite=True)

关键说明

两种方法都会忽略系统路径格式,只返回文件的纯名称(比如file1.txt),确保上传后Blob直接存放在容器根目录,不会带上本地的路径层级结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:32:06