某些情况下,对象存储Cache-Control设置不正确,用户每次请求CDN都要回源。此时的CDN不仅等于没有,而且会导致成本高和用户访问慢。
- 成本高。此时的成本=cdn流量费用+对象存储回源流量。
- 用户访问慢。此时用户请求时间=回源时间+文件下载时间
在阿里云的OSS中:
需要找到对象存储中Cache-Control=no-cache的对象。把对象的文件元数据的Cache-Contro设置为合适的值。比如空值。

image.png
root@test1:~# ossutil version
2.2.0 #ossutil版本号
#设置某个文件的缓存策略为public
ossutil set-props oss://to100public/module_question/69266843f239694f341c5614.mp3 --cache-control public --metadata-directive update -r
#设置module_question目录所有文件的缓存策略为public
./ossutil set-props oss://to100public/module_question/ --cache-control public --metadata-directive update -r
# 列出存储空间 examplebucket 中不缓存(Cache-Control=no-cache)的对象
ossutil ls oss://examplebucket / -d --metadata-filter "+ Cache-Control=no-cache"
hi
osstuil ls的--metadata-filter参数其用法:
#筛选标准存储类型的对象,列出存储空间 examplebucket 中所有存储类型为 Standard 的对象:
ossutil ls oss://examplebucket --metadata-filter "+ x-oss-storage-class=Standard" --metadata-filter "- **"
#排除归档存储类型的对象,列出存储空间 examplebucket 中所有非归档存储类型的对象:
ossutil ls oss://examplebucket --metadata-filter "- x-oss-storage-class=Archive"
#结合多个元数据条件筛选,列出存储空间 examplebucket 中所有 Content-Type 为 image/jpeg 且存储类型为 Standard 的对象:
ossutil ls oss://examplebucket --metadata-filter "+ content-type=image/jpeg" --metadata-filter "+ x-oss-storage-class=Standard" --metadata-filter "- **"