Я написал резервную/восстановительную систему для Glacier, используя SDK java SDK. Он работает, но теперь программа не может получить, и я получаю следующее исключение:Ошибки поиска ледника
Статус Код: 403,
AWS Service: AmazonSNS,
AWS Запрос ID: 2cf43ec9 -a5f5-51bd-b6b0-74c7bf725bac,
AWS Код ошибки: TopicLimitExceeded,
AWS Сообщение об ошибке: не удалось выполнить запрос: тема квота превышена
Кажется, что это происходит от SNS, а не от ледника. Используя консоль, я могу видеть темы SNS (12 &). Попробовал удалить пару из них, но, похоже, не работает. Кто-нибудь видел это?
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());
}
Нам нужно увидеть код. – Undo
Я нашел проблему. Из-за (ленивого) способа выполнения запроса создается тема SNS для каждого запроса. Я только что нажал ограничение по теме 127. При удалении (вручную) темы и подписки заботятся о проблеме. В моем конкретном случае будет изменен код для использования одной темы SNS. Благодаря! – jimper
Вы должны переместить свой комментарий в ответ, а затем принять его. В противном случае этот вопрос попадает каждый раз, когда кто-то ищет оставшиеся без ответа вопросы. – NobleUplift