python-3.x 403在将数据发布到cloudsearch期间

xzabzqsa  于 2023-05-08  发布在  Python
关注(0)|答案(2)|浏览(123)

下面是代码:

import requests
url = 'document_url/documents/batch'
payload = "[{...}, {....}]"
headers = {'Content-type': 'application/json'}
response = requests.post(url, headers=headers, data=payload)
print('response code:', response.status_code)
print('response body:', response.json())

以下产量:

response code: 403  
response body: {'message': 'Request forbidden by administrative rules', '__type': 'CloudSearchException'}

安全规则也向所有人开放。
会是什么问题呢?

wribegjk

wribegjk1#

根据论坛讨论:https://forums.aws.amazon.com/thread.jspa?threadID=148917
文档url应为:
document_url/2013-01-01/documents/batch
回复到上面的URL:

{
  "status": "success",
  "adds": 1,
  "deletes": 0
}
ddrv8njm

ddrv8njm2#

这完全是由于使用文档结束点并添加API版本,如下所示。
由于您正在尝试将数据插入Cloud Search,因此需要使用AWS提供的Cloud Search的Document End point。
后面需要跟API版本,如下所示:

https://doc-xxxxx.zzzz.cloudsearch.amazonaws.com/2013-01-01/documents/batch

同时要注意添加content-type,否则最终可能会得到HTTP 415 Unsupported Media Type错误。

addRequestHeader("Content-Type", "application/xml");

相关问题