rt.今天我用七牛提供的api删除了一个文件,但是我发现原有的那个外链地址依旧还能下载。至少我发该问题时,还能下载,删除应该是十分钟前的事了。我想问下,七牛同步得多久?
rt.今天我用七牛提供的api删除了一个文件,但是我发现原有的那个外链地址依旧还能下载。至少我发该问题时,还能下载,删除应该是十分钟前的事了。我想问下,七牛同步得多久?
1.删除成功以后,还可以下载,这是因为七牛云有cdn缓存(时间跟你在七牛云客户端设置有关),需要刷新cdn缓存.
2.如果你已经刷新了cdn缓存,那估计是你浏览器缓存问题,清理一下浏览器缓存(本人遇到的是这个问题).
代码如下:
Auth auth = Auth.create("accessKey", "secretKey");
Configuration config = new Configuration(Zone.autoZone());
BucketManager bucketMgr = new BucketManager(auth, config);
try {
Response response = bucketMgr.delete("bucket", fileName);
if(response.statusCode == 200){
System.out.println("删除成功");
response.close();
//刷新cnd缓存 此处可以单独抽取出一个方法,我这边为了方便就写一起了
CdnManager c = new CdnManager(auth);
String[] urls = new String[]{"qiniu url"+ "/" + fileName};
try {
//单次方法调用刷新的链接不可以超过100个
CdnResult.RefreshResult result = c.refreshUrls(urls);
if(result.code == 200){
System.out.println("刷新成功");
}else{
System.out.println("刷新失败");
}
} catch (Exception e) {
System.out.println(e);
}
}else{
System.out.println("删除失败");
}
}catch (Exception e){
System.out.println(e);
}
24小时吧,你可以刷新下CDN,建议使用第二,三种方法吧
清除cdn缓存的几种方式
1,URL 问号传参。
例如,如果http://ikbear.qiniudn.com/iphone.jpg 这个图片资源没有更新,
可以在该 URL 后面加上参数的形式来让 CDN 强制刷新:
http://ikbear.qiniudn.com/iphone.jpg?v=20130910,CDN 拿到这个 URL 后会强制回七牛的存储中取回最新的资源。
具体在程序中可以在每次资源更新之后都更新问号后面的参数。
2,使用七牛云存储提供的 qboxrsctl 命令行工具,强制让 CDN 上的该缓存失效:
3,使用我们的管理后台https://portal.qiniu.com/ => 选择一个空间 => 空间设置 => 高级设置 => 缓存刷新
需要注意的是下载分发类型的空间是不支持用第一种方式刷新的