如何使用 Python 在 Azure 中创建 blob 容器?

How to create a blob container in Azure using Python?

I am a novice in Python programming and trying to create a blob container using python. Even after following the documented steps, I see the below error.

Here is my code:
import os, uuid
from azure.storage.blob import BlobServiceClient,BlobClient,ContainerClient,__version__


class BlobSamples():
    print("Azure Blob Storage v" + __version__ + " - Python quickstart sample")
    connection_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
    print("Connection established to Azure storage account from the Python App")

    #--Begin Blob Samples-----------------------------------------------------------------
    def create_container_sample(self):
        # Instantiate a new BlobServiceClient using a connection string
        blob_service_client = BlobServiceClient.from_connection_string(self.connection_str)
        
        # Instantiate a new ContainerClient
        container_client = blob_service_client.get_container_client("mycontainer")

        try:
            # Create new container in the service
            container_client.create_container()
            # List containers in the storage account
            list_response = blob_service_client.list_containers()
        except Exception as ex:
            print('Exception:')
            print(ex)
#main program
sample = BlobSamples()
sample.create_container_sample()



**Error:**

py ConnectionString.py Azure Blob 存储 v12.9.0 - Python 快速入门示例 从 Python 应用程序建立到 Azure 存储帐户的连接 追溯(最近一次通话): 文件“C:\Technical docs\cloud computing\MS Azure\blob-quickstart-v12\menu-driven-strg-ops\ConnectionString.py”,第 31 行,位于 sample.create_container_sample() 文件“C:\Technical docs\cloud computing\MS Azure\blob-quickstart-v12\menu-driven-strg-ops\ConnectionString.py”,第 16 行,在 create_container_sample 中 blob_service_client = BlobServiceClient.from_connection_string(self.connection_str) 文件“C:\Python-InstallPath\lib\site-packages\azure\storage\blob_blob_service_client.py”,第 174 行,在 from_connection_string 中 enter code hereaccount_url, 辅助, 凭证 = parse_connection_str(conn_str, 凭证, 'blob') 文件“C:\Python-InstallPath\lib\site-packages\azure\storage\blob_shared\base_client.py”,第 363 行,在 parse_connection_str 中 conn_str = conn_str.rstrip(";") AttributeError: 'NoneType' 对象没有属性 'rstrip'

我看到您正在尝试使用 os.getenv 检索 connection_str。但是,如果 connection_str 不是环境值,则此方法 returns None 可能是这种情况,因为您的错误状态为 AttributeError: 'NoneType' object has no attribute 'rstrip'.

connection_str 添加到您的环境变量可能会解决您的错误。或者,您也可以在 create_container_sample() 方法中为 connection_str 创建一个参数,然后将 connection_str 作为变量传递以测试您的代码。

我试图在我的系统中重现该场景。

请检查您是否正确添加了环境变量。使用
'URL' in os.environ 检查环境是否存在(真或假)

在命令提示符中添加环境变量

set URL=https://pythonazurestorage12345.blob.core.windows.net

设置

尝试使用此代码

import os, uuid
from azure.storage.blob import BlobServiceClient,BlobClient,ContainerClient,__version__

print('URL' in os.environ)

connection_str = os.getenv("URL")
blob_service_client = BlobServiceClient.from_connection_string(connection_str)
        
        # Instantiate a new ContainerClient
container_client = blob_service_client.get_container_client("testcontainers")
container_client.create_container()

输出

在 Azure 门户中成功创建容器

我遇到了同样的错误,但没有解决办法。直到我阅读了 Azure 的文档,他们才稍微改变了一些东西。

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

之后您需要重新启动您的编辑器。一切都会奏效。 :)