【问题标题】:AWS Neptune bulk load endpoint results in 403 every timeAWS Neptune 批量加载终端节点每次都会导致 403
【发布时间】:2021-07-21 23:10:30
【问题描述】:

我正在尝试通过点击海王星批量加载端点来批量加载数据:

  private void upload(String source) throws URISyntaxException, IOException {
    String jsonReq = createJson("s3://" + source);
    InputStream inputStream = new ByteArrayInputStream(jsonReq.getBytes(StandardCharsets.UTF_8));

    Request<Void> req = new DefaultRequest<>("neptune-db");
    req.setHttpMethod(HttpMethodName.POST);
    req.setEndpoint(new URI("https", null, HOST, 8182, "/loader", null, null));
    req.setContent(inputStream);
    req.setHeaders(Map.of("host",
        HOST,
        "Content-Type",
        "application/json",
        "x-amz-content-sha256",
        "required"));

    AWS4Signer signer = new AWS4Signer();
    signer.setRegionName(region);
    signer.setServiceName(req.getServiceName());
    signer.setOverrideDate(new Date());
    signer.sign(req, getCreds());

    httpClient.requestExecutionBuilder().request(req).errorResponseHandler(new ErrorResponseHandler()).execute();
  }

我不断收到 403。同样的请求适用于 AWScurl 和 postman。在这种情况下可能缺少什么?我可以看到令牌被提取以进行签名。

【问题讨论】:

    标签: java amazon-web-services amazon-neptune


    【解决方案1】:

    对于遇到这种情况的人... https://github.com/aws/amazon-neptune-sigv4-signer/blob/863025d2426115231dd473fa33399cf1dd166cf1/src/main/java/com/amazonaws/neptune/auth/NeptuneApacheHttpSigV4Signer.java#L46

    对他们的 neptunesigv4 代码的评论提到双主机头会破坏它。它做到了。我删除了多余的主机头。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多