0

我正在尝试使用 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'>所以我知道它是正确的。

在此先感谢您的帮助。

4

0 回答 0