在S3上传上的Amazon Transcribe:“ [错误] BadRequestException:提供的URI没有指向S3对象”

时间:2019-07-03 15:03:43

标签: python amazon-web-services amazon-s3 aws-lambda aws-transcribe

我正在尝试对一组媒体文件进行Amazon Transcribe,以适应 示例文档代码和using this series as a reference以适合任何上传到我指定的媒体S3文件夹的文件,但是我的测试文件有问题。

上传资料夹/文件夹路径:

=MINUSCULE(REGEXREPLACE(A1, " ", "_"))

我已验证文件存在,并且存储桶权限将访问权限授予对Amazon Transcribe服务的访问权限。我可以使用相同的URL来开始手动转录作业,但不能使用SDK:我也已使用上述路径将其直接链接到函数中,但没有结果。我很欣赏这可能是URL路径问题,但是在该主题上没有看到太多内容,因此请检查是否有明显的错误。

'MediaFileUri': https://us-west-2.console.aws.amazon.com/s3/buckets/upload-asr/mediaupload/file.mp4

CloudWatch Log失败报告:

import json
import time
import boto3
from urllib.request import urlopen


def lambda_handler(event, context):
    transcribe = boto3.client("transcribe")
    s3 = boto3.client("s3")

    if event:
        file_obj = event["Records"][0]
        bucket_name = str(file_obj['s3']['bucket']['name'])
        file_name = str(file_obj['s3']['object']['key'])
        file_type = file_name.split(".")[1]
        s3_uri = create_uri(bucket_name, file_name)
        job_name = context.aws_request_id


        transcribe.start_transcription_job(TranscriptionJobName = job_name,
                                            Media = {'MediaFileUri': s3_uri},
                                            OutputBucketName = "bucket-name",
                                            MediaFormat = file_type,
                                            LanguageCode = "en-US")

def create_uri(bucket_name, file_name):

类似: https://forums.aws.amazon.com/thread.jspa?messageID=876906&#876906

1 个答案:

答案 0 :(得分:1)

使用以下格式对我有效:

Media={
    'MediaFileUri': f'https://s3-us-west-2.amazonaws.com/{BUCKET}/{KEY}'
},