我正在尝试获取图像的URL,下载它,然后使用wordpressapi将其上传到wordpress。这是我的密码:
def upload_media(self, media_url):
# Get the last path component
filename = media_url.split('/')[-1]
response = requests.get(media_url)
if response.status_code == 200:
image = Image.open(BytesIO(response.content))
upload_url = self.__upload_media_url()
headers = { "Content-Disposition": f'attachment; filename={filename}'}
files = { 'file': image.tobytes() }
request = requests.post(upload_url, auth=(self.username, self.password), files=files, headers=headers)
return request
每次失败时都会出现以下错误:
{'code': 'rest_upload_unknown_error', 'message': 'Sorry, this file type is not permitted for security reasons.', 'data': {'status': 500}}
最初我有以下代码,在我的本地机器上工作。但是,因为我想在Google云上运行这个函数,所以我没有访问文件系统的权限。因此,打开/关闭过程将不起作用。你知道吗
def upload_media(self, media_url):
# Get the last path component
filename = media_url.split('/')[-1]
response = requests.get(media_url)
if response.status_code == 200:
with open(filename, 'wb') as file:
file.write(response.content)
upload_url = self.__upload_media_url()
headers = { "Content-Disposition": f'attachment; filename={filename}'}
files = { 'file': open(filename, 'rb')}
request = requests.post(upload_url, auth=(self.username, self.password), files=files, headers=headers)
os.remove(filename)
return request
有办法吗?你知道吗
最终我不得不对我原来的功能做了两个修改。你知道吗
添加
Content-type: image/jpeg
用
data=
代替file=
以下是不需要打开/关闭任何文件的工作功能:
根据https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.tobytes
image.tobytes()
生成原始图像数据,而不是PNG或JPG压缩数据-因此,您尝试上载的不是允许的类型之一。你知道吗把这句话放下:
然后使用:
我相信这会解决你的问题。你知道吗
相关问题 更多 >
编程相关推荐