botocore.errorfactory.InvalidS3ObjectException - PullRequest
0 голосов
/ 08 июня 2018

У меня есть код распознавания aws, написанный на Python, и он выполняется с помощью Node API, который отлично работает в системе Windows, но при развертывании его в Linux я сталкиваюсь с этой проблемой: - botocore.errorfactory.InvalidS3ObjectException: An error occurred (InvalidS3ObjectException) when calling the DetectText operation: Unable to get object metadata from S3. Check object key, region and/or access permissions.

Я предоставил роль доступа как AmazonRekognitionFullAccess, так и AmazonS3ReadOnlyAccess.Тем не менее, я не знаю, как это сделать.

Код Python: -

bucket = 'image-test'
def image_to_dict(fileName, bucket):
    client = boto3.client('rekognition', 'us-east-2')
    response = client.detect_text(Image = { 'S3Object': { 'Bucket': bucket, 
    'Name': fileName } })
    return response

Код узла, используемый для запуска скрипта Python: -

var options = {
            mode: 'text',
            pythonPath:"/usr/bin/python2.7"
            pythonOptions: ['-u'],
            scriptPath: "/home/ubuntu/test",
            args: [imageURl]
        };
        PythonShell.run('script.py', options, function (err, results) {
            if (err)
                throw err;

        console.log("Data is: "+results)

Iна моем Ubuntu установлена ​​версия Python 2.7, версия 10.0.1.

1 Ответ

0 голосов
/ 11 июня 2018

Спасибо за помощь.

Причина, по которой проблема заключалась в том, что когда я передавал имя изображения в качестве аргумента из Node API, манипулировало именем из-за некоторой логики подстроки. Так что, когда скрипт python идет сэто имя манипулировалось для поиска в сегменте S3, оно использовалось при появлении вышеуказанной ошибки, так как это имя не существовало в сегменте S3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...