我试图使用JAVA 使AWS中的缓存失效,但我发现找到相关信息是一场噩梦。我已经创建了这个项目,我正在努力弄清楚如何使用com.amazonaws.services.cloudfront.AmazonCloudFrontClient连接到cloudfront并调用无效api。
com.amazonaws.services.cloudfront.AmazonCloudFrontClient我在2016年发现了一个类似于我的问题的答案,该问题推荐了以下方法:
AWSCredentials awsCredentials = new DefaultAWSCredentialsProviderChain().getCredentials();
AmazonCloudFrontClient client = new AmazonCloudFrontClient(awsCredentials);
Paths invalidation_paths = new Paths().withItems("/path/to/invalidate/foo.jpg", "/path/file2.txt").withQuantity(2);
InvalidationBatch invalidation_batch = new InvalidationBatch(invalidation_paths, "unique_id_like_a_date");
CreateInvalidationRequest invalidation = new CreateInvalidationRequest("distributionID", invalidation_batch);
CreateInvalidationResult ret = client.createInvalidation(invalidation);然而,这些类中的一些现在不再被推荐和/或不再存在。
有人能帮助我们找到正确的方法通过JAVA调用Cloudfront中的失效API吗?
发布于 2019-07-09 16:01:52
我使用AWSJavaSDK2.x成功地使某些路径的缓存失效,如下所示:
Paths invalidationPaths = Paths.builder()
.items("/thing.txt", "/foo/bar/*")
.quantity(2)
.build();
InvalidationBatch invalidationBatch = InvalidationBatch.builder()
.paths(invalidationPaths)
.callerReference("arcones")
.build();
CreateInvalidationRequest createInvalidationRequest = CreateInvalidationRequest.builder()
.distributionId(distributionID)
.invalidationBatch(invalidationBatch)
.build();
cloudFront.createInvalidation(createInvalidationRequest);请记住,失效是异步的,因此在运行此版本时将向您的CloudFront发行版发出,并需要一段时间进行处理(您可以注意到,当状态变为Completed时,失效宣告已经完成)。
发布于 2019-04-11 07:48:43
若要使文件无效,可以指定单个文件的路径或以*通配符结尾的路径,这可能适用于一个文件或多个文件,如以下示例所示:
/images/image1.jpg
/images/image*
/images/*备注
如果使用AWS命令行接口(CLI)使文件无效,并且指定包含*通配符的路径,则必须在路径周围使用引号(")。
例如:
aws cloudfront create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths "/*"https://stackoverflow.com/questions/55616333
复制相似问题