Amazon Transcribe和Golang SDK BadRequestException

时间:2020-02-20 16:18:45

标签: amazon-web-services aws-transcribe

我将.flac文件上传到Amazon S3存储桶,但是当我尝试使用Amazon Transcribe Golang SDK转录音频时,出现以下错误。我尝试将S3存储桶中的.flac文件设为公开,但仍然收到相同的错误,因此我认为它不是权限问题。有什么阻止Transcribe服务从我丢失的S3存储桶中访问文件的功能吗?正在上载和转录的api用户对S3和Transcribe服务具有完全访问权限。

示例Go代码:

    jobInput := transcribe.StartTranscriptionJobInput{
        JobExecutionSettings: &transcribe.JobExecutionSettings{
            AllowDeferredExecution: aws.Bool(true),
            DataAccessRoleArn:      aws.String("my-arn"),
        },
        LanguageCode: aws.String("en-US"),
        Media: &transcribe.Media{
            MediaFileUri: aws.String("https://s3.us-east-1.amazonaws.com/{MyBucket}/{MyObjectKey}"),
        },
        Settings: &transcribe.Settings{
            MaxAlternatives:   aws.Int64(2),
            MaxSpeakerLabels:  aws.Int64(2),
            ShowAlternatives:  aws.Bool(true),
            ShowSpeakerLabels: aws.Bool(true),
        },
        TranscriptionJobName: aws.String("jobName"),
    }

Amazon Transcribe响应:

BadRequestException: The S3 URI that you provided can't be accessed. Make sure that you have read permission and try your request again.

1 个答案:

答案 0 :(得分:0)

我的问题是正在上传到s3的音频文件指定了ACL。我从s3上传代码中删除了该代码,不再收到错误。同样根据文档,如果您在s3存储桶名称中具有“转录”,则转录服务将有权访问它。我也进行了更改,但是您仍然需要确保您未使用ACL