我正在尝试使用 python SDK 将多个图像上传到 Azure Blob 存储。如果我上传一个文件,代码可以工作,但是如果我尝试上传多个文件,我会收到以下错误:
File "/usr/local/lib/python3.9/urllib/parse.py", line 887, in quote_from_bytes
raise TypeError("quote_from_bytes() expected bytes")
TypeError: quote_from_bytes() expected bytes
我调用的代码是这样的:
for file in files:
if file and allowed_file(file.filename):
filename = uuid.uuid4()
photo_url = AzureStorage.upload_to_container(
'event-photos',
filename,
file
)
我的 Azure 函数中的代码如下所示:
@classmethod
def upload_to_container(cls, container_name, file_name, photo):
mimetype = photo.content_type
blob_client = BlobClient.from_connection_string(
conn_str=cls.connect_string,
container_name=container_name,
blob_name=file_name
)
blob_client.upload_blob(
photo,
overwrite=True,
content_settings=ContentSettings(content_type=mimetype)
)
return blob_client.url
在过去的两天里,我一直在尝试解决这个问题,但运气不佳。我在变量上做了一个 print(type()) 并且它回来了,<class 'werkzeug.datastructures.FileStorage'>
所以我知道它是正确的。
在此先感谢您的帮助。