Python SDK七牛服务器删除再保存同名文件却得得到旧文件

我清空了七牛服务器上保存的文件,再使用python写的一段代码上传一个同名的文件,文件名为:qunar2015-07-31重庆-天津.txt

access_key = '****'
secret_key = '****'
bucket_name = '****'
q = Auth(access_key, secret_key)

# 上传字符串
token = q.upload_token(bucket_name)
data = json.dumps(pricedict, ensure_ascii=False).decode('utf-8')
print('data:' + data)
ret, info = put_data(token, key, data)
assert ret['key'] == key

其中print('data:' + data)这一代码在控制台输出的内容为:
data:{"query_time": "15:55:36", "departure_city": "重庆", "price": {"2015-08-31": "777", "2015-08-28": "779", "2015-08-29": "777", "2015-08-08": "890", "2015-08-09": "893", "2015-08-04": "800", "2015-08-05": "891", "2015-08-06": "860", "2015-08-07": "890", "2015-08-26": "777", "2015-08-01": "933", "2015-08-02": "1066", "2015-08-03": "857", "2015-07-31": "1409", "2015-09-11": "811", "2015-09-10": "808", "2015-08-22": "843", "2015-09-12": "805", "2015-09-13": "805", "2015-08-23": "859", "2015-08-20": "845", "2015-08-13": "844", "2015-08-12": "927", "2015-08-11": "935", "2015-08-10": "920", "2015-08-17": "845", "2015-08-16": "1025", "2015-08-15": "936", "2015-08-14": "933", "2015-08-21": "859", "2015-08-30": "774", "2015-08-19": "840", "2015-08-18": "844", "2015-08-27": "773", "2015-08-24": "847", "2015-08-25": "780", "2015-09-07": "806", "2015-09-06": "856", "2015-09-05": "864", "2015-09-04": "857", "2015-09-03": "811", "2015-09-02": "862", "2015-09-01": "860", "2015-09-09": "807", "2015-09-08": "808"}, "arrive_city": "北京"}

而服务器上的文件内容为:
{"query_time": "13:26:50", "departure_city": "重庆", "price": {"2015-08-31": "712", "2015-08-28": "727", "2015-08-29": "727", "2015-08-08": "868", "2015-08-09": "893", "2015-08-04": "678", "2015-08-05": "612", "2015-08-06": "616", "2015-08-07": "906", "2015-08-26": "748", "2015-08-01": "789", "2015-08-02": "704", "2015-08-03": "673", "2015-07-31": "1400", "2015-09-11": "686", "2015-09-10": "628", "2015-08-22": "789", "2015-09-12": "686", "2015-09-13": "687", "2015-08-23": "867", "2015-08-20": "788", "2015-08-13": "710", "2015-08-12": "713", "2015-08-11": "787", "2015-08-10": "786", "2015-08-17": "711", "2015-08-16": "712", "2015-08-15": "711", "2015-08-14": "712", "2015-08-21": "716", "2015-08-30": "650", "2015-08-19": "713", "2015-08-18": "754", "2015-08-27": "726", "2015-08-24": "715", "2015-08-25": "725", "2015-09-07": "681", "2015-09-06": "757", "2015-09-05": "758", "2015-09-04": "681", "2015-09-03": "711", "2015-09-02": "633", "2015-09-01": "630", "2015-09-09": "632", "2015-09-08": "634"}, "arrive_city": "天津"}
这是之前删除的一个同名文件的内容,我使用文件的外链地址在浏览器中打开得到的,我刷新过页面,但是一直得到文件以前的内容。

我在网页中将服务器的文件下载到本地,打开却得到如下内容:
{"query_time": "13:26:50", "departure_city": "重庆", "price": {"2015-08-31": "712", "2015-08-28": "727", "2015-08-29": "727", "2015-08-08": "868", "2015-08-09": "893", "2015-08-04": "678", "2015-08-05": "612", "2015-08-06": "616", "2015-08-07": "906", "2015-08-26": "748", "2015-08-01": "789", "2015-08-02": "704", "2015-08-03": "673", "2015-07-31": "1400", "2015-09-11": "686", "2015-09-10": "628", "2015-08-22": "789", "2015-09-12": "686", "2015-09-13": "687", "2015-08-23": "867", "2015-08-20": "788", "2015-08-13": "710", "2015-08-12": "713", "2015-08-11": "787", "2015-08-10": "786", "2015-08-17": "711", "2015-08-16": "712", "2015-08-15": "711", "2015-08-14": "712", "2015-08-21": "716", "2015-08-30": "650", "2015-08-19": "713", "2015-08-18": "754", "2015-08-27": "726", "2015-08-24": "715", "2015-08-25": "725", "2015-09-07": "681", "2015-09-06": "757", "2015-09-05": "758", "2015-09-04": "681", "2015-09-03": "711", "2015-09-02": "633", "2015-09-01": "630", "2015-09-09": "632", "2015-09-08": "634"}, "arrive_city": "天津"}
{"query_time": "14:13:59", "departure_city": "重庆", "price": {"2015-08-31": "714", "2015-08-28": "721", "2015-08-29": "727", "2015-08-08": "760", "2015-08-09": "637", "2015-08-04": "676", "2015-08-05": "614", "2015-08-06": "609", "2015-08-07": "634", "2015-08-26": "750", "2015-08-01": "805", "2015-08-02": "706", "2015-08-03": "673", "2015-07-31": "1438", "2015-09-11": "688", "2015-09-10": "629", "2015-08-22": "794", "2015-09-12": "685", "2015-09-13": "684", "2015-08-23": "715", "2015-08-20": "869", "2015-08-13": "719", "2015-08-12": "711", "2015-08-11": "709", "2015-08-10": "638", "2015-08-17": "712", "2015-08-16": "712", "2015-08-15": "864", "2015-08-14": "713", "2015-08-21": "869", "2015-08-30": "646", "2015-08-19": "712", "2015-08-18": "760", "2015-08-27": "747", "2015-08-24": "716", "2015-08-25": "723", "2015-09-07": "683", "2015-09-06": "757", "2015-09-05": "755", "2015-09-04": "685", "2015-09-03": "714", "2015-09-02": "629", "2015-09-01": "630", "2015-09-09": "631", "2015-09-08": "629"}, "arrive_city": "天津"}
这也是之前在服务器上删除的文件

如果我在上传的时候换一个新的文件名,如:qunar2015-07-31重庆-北京.txt,上传后得到的文件内容就是最新上传的,之后再用原来的那个文件名上传,得到的依然是旧的内容。
我想问一下出现这种问题的原因是什么,如果我保存的文件需要实时更新其内容,那么应该怎样做呢

阅读 2.9k
1 个回答

这个是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 上的该缓存失效:

qrsctl login <User> <Passwd>


qrsctl cdn/refresh <Bucket> <Url1>,<Url2>...<UrlN>

3,使用我们的管理后台https://portal.qiniu.com/ => 选择一个空间 => 空间设置 => 高级设置 => 缓存刷新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进