0
我已經使用AWS java SDK編寫了Glacier的備份/檢索系統。它一直在努力,但現在的程序是無法挽回了,我得到了以下異常:冰川檢索錯誤
狀態代碼:403,
AWS服務: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