在Python的帮助下,我如何在Azure Blobstorage下创建动态子文件夹



我正试图在blob存储区下创建一个动态文件夹(当前日期为mm-dd-yyyy(。我尝试过不同的资源,包括以下资源:如何安全地创建嵌套目录?并使用这些指南尝试创建动态文件夹,但由于以下错误而失败:

Container_client2=blob_service_client.create_container(container_name/folder(类型错误:不支持/:'str'和'str'的操作数类型

这是我的代码快照:

import os
from pathlib import Path
from datetime import datetime
# Instantiate a new BlobServiceClient using a connection string
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient 
from azure.core.exceptions import ResourceNotFoundError, ResourceExistsError
today = datetime.now()
try:
connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
# Create the BlobServiceClient object which will be used to create a container client
# Instantiate a BlobServiceClient using a connection string
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
# Create a unique name for the container
folder = today.strftime('%m-%d-%Y')
container_name = '2021' 
print('Folder Name ---> ' + folder)

# Create the container
Container_client1 = blob_service_client.get_container_client(container_name)
Container_client2 = blob_service_client.create_container(container_name/str(folder))
print ("get Container client---" + str(Container_client1))
try:
for blob in Container_client1.list_blobs():
print("Found blob: ", blob.name)
except ResourceNotFoundError:
print("Container not found.")     
finally:
print ("nothing")

Joel Cochran是正确的,Azure Blob中没有子文件夹。Blob服务基于平面存储方案,而不是层次结构方案。但是,您可以在blob名称中指定字符或字符串分隔符来创建虚拟层次结构。例如,以下列表显示了有效且唯一的blob名称。请注意,在同一个容器中,字符串既可以作为blob名称,也可以作为虚拟目录名称:

  • /a
  • /a.txt
  • /a/b
  • /a/b.txt

在枚举Blob时,可以利用分隔符。

最新更新