小编Dav*_*ner的帖子

python async upload_blob -- TypeError:对象 AccessToken 不能在“await”表达式中使用

我正在使用 Python 3.6.8 和以下软件包:

azure-common 1.1.25
azure-core 1.3.0
azure-identity 1.3.0
azure-nspkg 3.0.2
azure-storage-blob 12.3.0

我的代码中的以下行:

await blobClient.upload_blob(data, overwrite=True)
Run Code Online (Sandbox Code Playgroud)

给我一个带有消息的堆栈跟踪:

TypeError: object AccessToken can't be used in 'await' expression
Run Code Online (Sandbox Code Playgroud)

如果我去掉“等待”,代码就可以正常工作,尽管它永远不会将控制权交给其他任务,但它确实可以完美地上传 blob。我正在使用异步 upload_blob() 函数。我不明白为什么会出现此错误,有什么想法吗?

这是减去一些变量赋值的代码:

from azure.identity import ClientSecretCredential
from azure.storage.blob.aio import BlobClient
import asyncio
import os

async def task(name, work_queue):
    """                                                                                                                                            
    """
    while not work_queue.empty():
        f = await work_queue.get()

        blobClient = BlobClient(
            "https://{}.blob.core.windows.net".format(accountName),
            credential = creds,
            container_name = container,
            blob_name = (f.replace(sourceDirPrefix, '')),
        )

        # Upload content to blob                                                                                                                   
        with open(f, …
Run Code Online (Sandbox Code Playgroud)

python azure azure-blob-storage

2
推荐指数
1
解决办法
2135
查看次数

标签 统计

azure ×1

azure-blob-storage ×1

python ×1