首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Java使Cloudfront中的缓存失效

如何使用Java使Cloudfront中的缓存失效
EN

Stack Overflow用户
提问于 2019-04-10 15:30:06
回答 2查看 2.6K关注 0票数 3

我试图使用JAVA 使AWS中的缓存失效,但我发现找到相关信息是一场噩梦。我已经创建了这个项目,我正在努力弄清楚如何使用com.amazonaws.services.cloudfront.AmazonCloudFrontClient连接到cloudfront并调用无效api。

代码语言:javascript
复制
com.amazonaws.services.cloudfront.AmazonCloudFrontClient

我在2016年发现了一个类似于我的问题的答案,该问题推荐了以下方法:

代码语言:javascript
复制
    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吗?

EN

回答 2

Stack Overflow用户

发布于 2019-07-09 16:01:52

我使用AWSJavaSDK2.x成功地使某些路径的缓存失效,如下所示:

代码语言:javascript
复制
        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时,失效宣告已经完成)。

票数 -1
EN

Stack Overflow用户

发布于 2019-04-11 07:48:43

失效

若要使文件无效,可以指定单个文件的路径或以*通配符结尾的路径,这可能适用于一个文件或多个文件,如以下示例所示:

代码语言:javascript
复制
/images/image1.jpg
/images/image*
/images/*

备注

如果使用AWS命令行接口(CLI)使文件无效,并且指定包含*通配符的路径,则必须在路径周围使用引号(")。

例如:

代码语言:javascript
复制
aws cloudfront create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths "/*"
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55616333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档