我正在使用 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)