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