【问题标题】:Access results of AWS Transcribe job with Java SDK使用 Java SDK 访问 AWS Transcribe 作业的结果
【发布时间】:2018-05-11 22:27:48
【问题描述】:

我有一个 AWS Transcribe 作业,该作业在完成时会给我一个 URI。此 URI 应该是存储转录文本的位置。我想使用 Java SDK 访问该文本,但 GetObject 似乎不支持此选项。如何访问转录作业中的文本?

// I am given this
String URI = job.getTranscript().getTranscriptFileUri();
// I want to do this
S3Object transcript = s3.getObject(URI);

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-java-sdk aws-transcribe


    【解决方案1】:

    您需要从给定的 URI 解析存储桶和对象键,或者您可以使用 AWS 开发工具包中提供的类 AmazonS3URI。然后执行以下操作:

    String URI = job.getTranscript().getTranscriptFileUri();
    AmazonS3URI s3ObjectURI = new AmazonS3URI(URI);
    S3Object transcript = s3.getObject(s3ObjectURI.getBucket(), s3ObjectURI.getKey());
    

    【讨论】:

    • 我尝试了这种方法,但抛出了下一个错误。 com.amazonaws.services.s3.model.AmazonS3Exception: Your key is too long (Service: Amazon S3; Status Code: 400; Error Code: KeyTooLongError;
    • 您遇到的错误可能是转录后的错误。因为如果转录结果被 S3 接受,则意味着对象键不会太长。所以获取S3对象不会抛出KeyTooLongError。
    • 最后我使用 httpOk 库来获取 JSON 文件并将这个 JSON 解析为一个 Java 对象。 String URI = result.getTranscriptionJob().getTranscript().getTranscriptFileUri(); TranscriptionResponseDTO transcriptionResponseDTO = awsUtil.downloadTranscriptionResponse(URI);我在答案上发布了我的替代方案
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2020-05-26
    • 2021-06-18
    相关资源
    最近更新 更多