【问题标题】:UnicodeDecodeError when uploading image bytes to Azure Block Blob via Python SDK通过 Python SDK 将图像字节上传到 Azure Block Blob 时出现 UnicodeDecodeError
【发布时间】:2015-12-26 04:02:57
【问题描述】:

我正在使用 Azure Python SDK 将图像文件作为 Azure Block Blob 上传。我想使用“put_block_blob_from_bytes”方法,而不是“put_block_blob_from_file”方法。

我在最后一行代码中收到以下错误:

"UnicodeDecodeError 未被用户代码处理 消息:'ascii' 编解码器无法解码位置 0 中的字节 0x89:序数不在范围内(128)“

似乎我需要在某处将内容编码更改为“utf-8”,但我无法确定将其放入“put_block_blob_from_bytes”的方法签名中的正确位置。

我试过了,但仍然收到同样的错误:

blob_service.put_block_blob_from_bytes("testcontainer", "myimage.png", data, 0, None, "utf-8")

这是完整的代码示例。注意:为了发布,我删除了存储帐户名称和密钥。

from azure.storage.blob import BlobService
azureStorageAccountName = "" # REMOVED for this question
azureStorageAccountKey = "" # REMOVED for this question
with open("c:\\temp\\image.png", "rb") as f:
    data = f.read()
    blob_service = BlobService(account_name=azureStorageAccountName, account_key=azureStorageAccountKey)
    blob_service.put_block_blob_from_bytes("testcontainer", "myimage.png", data)

谢谢!

【问题讨论】:

  • 我刚刚在我的计算机(它是一台 Windows 8 机器)上的一个文件中尝试了相同的代码,它工作得很好。你能分享更多细节吗?如SDK版本等
  • 谢谢高拉夫!我运行“pip install azure --upgrade”,将错误消息更改为容器不存在;然后我添加了 blob_service.create_container("testcontainer"),再次运行它,它工作了。
  • 我刚刚确认容器问题无关。所以根本原因是我有一个较旧的 SDK 有问题。

标签: python azure encoding sdk


【解决方案1】:

我跑了:

pip install azure --upgrade

其中升级了一些组件。然后我再次运行它,一切正常。感谢 Gaurav Mantri 提供的提示,以确保我拥有最新版本的 SDK。

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 2015-10-16
    • 1970-01-01
    • 2014-12-04
    • 2017-04-26
    • 1970-01-01
    • 2020-01-09
    • 2018-12-17
    • 2015-05-15
    相关资源
    最近更新 更多