python 调用api上传物流信息_使用python通过API上传图片到backblaze

这篇博客介绍了作者在尝试使用Python通过API将文件(包括图片)上传到Backblaze时遇到的问题。当尝试上传图片时,遇到了'ascii' codec UnicodeDecodeError。通过base64编码解决了直接上传图片的错误,但由此导致无法通过公共链接访问图片。作者寻求克服这一问题的其他方法。
摘要由CSDN通过智能技术生成

我一直在尝试使用python通过API上传文件到backblaze。在

下面是我使用的代码片段。在import json

import urllib2

import hashlib

upload_url = "" # Provided by b2_get_upload_url

upload_authorization_token = "" # Provided by b2_get_upload_url

file_data = "Now, I am become Death, the destroyer of worlds."

file_name = "oppenheimer_says.txt"

content_type = "text/plain"

sha1_of_file_data = hashlib.sha1(file_data).hexdigest()

headers = {

'Authorization' : upload_authorization_token,

'X-Bz-File-Name' : file_name,

'Content-Type' : content_type,

'X-Bz-Content-Sha1' : sha1_of_file_data

}

request = urllib2.Request(upload_url, file_data, headers)

response = urllib2.urlopen(request)

response_data = json.loads(response.read())

response.close()

我可以通过网页访问文件。在

但是当我试图通过修改下面给出的代码来上传图片时(所有其他部分都与上面的代码相同)

^{pr2}$

它会引发如下错误File "/usr/lib/python2.7/httplib.py", line 848, in _send_output

msg += message_body

UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)

当我使用base64编码图像内容时,它工作得很好,但是不能通过公共链接访问图像。有没有其他方法可以克服这个问题?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值