Java 冰川档案检索-无效的vault名称

Java 冰川档案检索-无效的vault名称,java,amazon-web-services,amazon-glacier,Java,Amazon Web Services,Amazon Glacier,我已经创建了一个新的冰川库用于开发。我为作业完成通知设置SNS和SQS 我正在使用AWS的JavaSDK。我能够成功地将存档添加到vault,但在创建检索作业时出错 我使用的代码来自SDK InitiateJobRequest initJobRequest = new InitiateJobRequest() .withVaultName(vaultName) .withJobParameters(new JobParameters().withType("arc

我已经创建了一个新的冰川库用于开发。我为作业完成通知设置SNS和SQS

我正在使用AWS的JavaSDK。我能够成功地将存档添加到vault,但在创建检索作业时出错

我使用的代码来自SDK

InitiateJobRequest initJobRequest = new InitiateJobRequest()
        .withVaultName(vaultName)
        .withJobParameters(new JobParameters().withType("archive-retrieval").withArchiveId(archiveId));
我在测试和生产中使用相同的代码,它工作正常,但在开发中我遇到了以下错误:

状态代码:400,AWS服务:AmazonGlacier,AWS请求ID:xxxxxxxx,AWS错误代码:InvalidParameterValueException,AWS错误消息:无效的vault名称:arn:AWS:glacier:us-west-2:xxxxxxx:vault/xxxxxx

我知道vault名称是正确的,并且它是存在的,因为我使用相同的名称运行“添加存档”作业,并且完成得很好

我怀疑vault在创建后可能需要一段时间才能允许检索请求,但我找不到任何文档来证实这一点

有人有类似的问题吗?或者,在您启动检索请求之前,是否知道vault上是否有延迟?

错误消息“无效的vault名称”表示此存档位于不同的vault中。验证链接:

    try {
        // Get the S3 directory file.
        S3Object object = null;
        try {
            object = s3.getObject(new GetObjectRequest(s3BucketName, key));
        } catch (com.amazonaws.AmazonClientException e) {
            logger.error("Caught an AmazonClientException");
            logger.error("Error Message: " + e.getMessage());
            return;
        }

        // Show
        logger.info("\tContent-Type: "
                + object.getObjectMetadata().getContentType());
        GlacierS3Dir dir = GlacierS3Dir.digestS3GlacierDirectory(object
                .getObjectContent());
        logger.info("\tGlacier object ID is " + dir.getGlacierFileID());

        // Connect to Glacier
        ArchiveTransferManager atm = new ArchiveTransferManager(client,credentials);
        logger.info("\tVault: " + vaultName);

        // create a name
        File f = new File(key);
        String filename = f.getName();
        filename =  path + filename.replace("dir", "tgz");

        logger.info("Downloading to '" + filename
                + "'. This will take up to 4 hours...");
        atm.download(vaultName, dir.getGlacierFileID(), new File(filename));
        logger.info("Done.");

    } catch (AmazonServiceException ase) {
        logger.error("Caught an AmazonServiceException.");
        logger.error("Error Message:    " + ase.getMessage());
        logger.error("HTTP Status Code: " + ase.getStatusCode());
        logger.error("AWS Error Code:   " + ase.getErrorCode());
        logger.error("Error Type:       " + ase.getErrorType());
        logger.error("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        logger.error("Caught an AmazonClientException.");
        logger.error("Error Message: " + ace.getMessage());
    }