java - 在 Amazon s3 上上传的视频中检测人脸时,SQSMessageSuccess 中没有响应

标签 java amazon-web-services amazon-s3 amazon-sqs

我一直在尝试从存储在 Amazon S3 上的视频中检测人脸,这些人脸必须与包含要在视频中搜索的人脸的集合进行匹配。 我使用过亚马逊VideoDetect。 我的一段代码是这样的:

CreateCollection createCollection = new CreateCollection(collection);
createCollection.makeCollection();
AddFacesToCollection addFacesToCollection = new AddFacesToCollection(collection, bucketName, image);
addFacesToCollection.addFaces();
VideoDetect videoDetect = new VideoDetect(video, bucketName, collection);
videoDetect.CreateTopicandQueue();
try {
  videoDetect.StartFaceSearchCollection(bucketName, video, collection);
  if (videoDetect.GetSQSMessageSuccess())
    videoDetect.GetFaceSearchCollectionResults();
} catch (Exception e) {
  e.printStackTrace();
  return false;
}
videoDetect.DeleteTopicandQueue();
return true;

事情似乎工作正常,直到 StartFaceSearchCollection,我得到了一个正在制作的 jobId 和一个队列。但是,当它尝试四处获取 GetSQSMessageSuccess 时,它永远不会返回任何消息。 尝试获取消息的代码是:

   ReceiveMessageRequest.Builder receiveMessageRequest = ReceiveMessageRequest.builder().queueUrl(sqsQueueUrl);
   messages = sqs.receiveMessage(receiveMessageRequest.build()).messages();

它具有存在的正确 sqsQueueUrl。但我没有收到任何消息。 超时时它给了我这个异常:

software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: sqs.region.amazonaws.com
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)   

Caused by: java.net.UnknownHostException: sqs.region.amazonaws.com

那么除了 SQSMessage 之外,还有其他替代方法吗?我们可以通过其他方式跟踪/轮询 jobId 吗?或者我错过了什么??

最佳答案

使用有效 sqsQueueUrl 接收 SQS 消息的简单工作代码片段 for more

ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(sqsQueueUrl);
final List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (final Message message : messages) {
    System.out.println("Message");
    System.out.println("  MessageId:     " + message.getMessageId());
    System.out.println("  ReceiptHandle: " + message.getReceiptHandle());
    System.out.println("  MD5OfBody:     " + message.getMD5OfBody());
    System.out.println("  Body:          " + message.getBody());
    for (final Entry<String, String> entry : message.getAttributes().entrySet()) {
        System.out.println("Attribute");
        System.out.println("  Name:  " + entry.getKey());
        System.out.println("  Value: " + entry.getValue());
    }
}
System.out.println();

关于java - 在 Amazon s3 上上传的视频中检测人脸时,SQSMessageSuccess 中没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59748783/

相关文章:

java - Kotlin 和 Java 中带有嵌套类的泛型

java - 使用AWS EC2将大量文件放入S3存储桶中

mysql - 如何在 MySQL 中存储图像以及 Amazon S3 中照片的链接?

linux - 崩溃报告在 riak 中处理和显示存储桶列表非常慢

java - 在java中将字符串转换为System.Decimal

java - BlueJ - 'no suitable method found' 用于排序方法

amazon-web-services - 如何验证或创建 CloudFormation 堆栈

amazon-web-services - 如何通过其其余API更新AWS Elasticsearch集群设置?

javascript - 区域缺失错误 - AWS Amplify React

java - 求多项式的导数(无效版本)