<p>调用AnalyzeDocument操作时InvalidS3ObjectException:无法从S3获取对象元数据。检查对象密钥、区域和/或访问权限。“
我一直收到这个错误。结束。和。结束。这个程序与我引入的测试用例一起工作,json带有一个{“body”:“imagename.jpg”}.但就在我试图利用JS带来的实际代码的那一刻,我发现了这个错误。让我困惑的是,我已经检查了这些区域,它们都很好。我进入我的帐户,创建了可以完全访问所有AWS和S3功能的用户,并使用了这些登录,我使用了我的根帐户,一切。我所要做的就是访问从我的s3存储桶中生成一个图像。为什么它不起作用?下面是我的代码。如果我使用上面提供的测试用例,它会起作用,但当我尝试使用它所连接的网站时,它就不起作用了</p>
<pre><code>def main(event, context):
key_map, value_map, block_map = get_kv_map(event) #Take map variables in to get the key and value map we need.
</code></pre>
<p>它会转到这个函数</p>
<pre><code>def get_kv_map(event):
filePath = event
fileExt = filePath.get('body')
s3 = boto3.resource('s3', region_name='us-east-1')
bucket = s3.Bucket('react-images-ex')
obj = bucket.Object(bucket)
client = boto3.client('textract') #We utilize boto3's textract lib
response = client.analyze_document(Document={'S3Object': {'Bucket': 'react-images-ex', 'Name': fileExt}}, FeatureTypes=['FORMS'])
# Get the text blocks
blocks=response['Blocks'] #We make a blocks variable that will be the blocks we find in the document
# get key and value maps
key_map = {}
value_map = {}
block_map = {}
for block in blocks: #Traverse the blocks found in the document
block_id = block['Id'] #Set variable for blockId to the Id's found on that block location
block_map[block_id] = block #Make the block map at that ID be the block variable
if block['BlockType'] == "KEY_VALUE_SET": #if we see that the type of block we're on is a key and value set pair, we check if it's a key or not. If it's not a key, we know it's a value. We send it to the respective map.
if 'KEY' in block['EntityTypes']:
key_map[block_id] = block
else:
value_map[block_id] = block
return key_map, value_map, block_map #Return the maps we need after they're filled.
</code></pre>
<p>以前有人告诉过我,这个代码很好,应该可以工作。那么,为什么我会出现这个错误呢</p>