Доступ запрещен при получении транскрипции

Моя установка следующая:

Клиент приложения React-native -> Шлюз AWS API -> Функция AWS Lambda -> AWS S3 -> AWS Transcribe -> AWS S3

Я успешно могу загрузить аудиофайл в корзину S3 из лямбды, запустить транскрипцию и даже получить доступ к нему вручную в корзине S3. Однако, когда я пытаюсь получить доступ к файлу json с данными транскрипции с помощью TranscriptFileUri, я получаю ответ 403.

В ведре s3 с транскрипциями у меня есть следующая конфигурация CORS:

      [
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ]
    }
]

Код моей лямбда-функции выглядит так:

      response = client.start_transcription_job(
        TranscriptionJobName=jobName,
        LanguageCode='en-US',
        MediaFormat='mp4',
        Media={
            'MediaFileUri': s3Path
        },        
        OutputBucketName = 'my-transcription-bucket',
        OutputKey = str(user_id) + '/'
    )
    
    while True:
        result = client.get_transcription_job(TranscriptionJobName=jobName)
        if result['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
            break
        time.sleep(5)
        
    if result['TranscriptionJob']['TranscriptionJobStatus'] == "COMPLETED":
        data = result['TranscriptionJob']['Transcript']['TranscriptFileUri']
        data = requests.get(data)
        print(data)

В Cloudwatch я получаю следующее:<Response [403]>при печати ответа.

0 ответов

Другие вопросы по тегам