Max*_*son 6 php google-app-engine caching google-cloud-storage
我有一个包含经常更新的公共图像的存储桶,并希望禁用 3600 的默认缓存持续时间。(例如“Cache-Control:private, max-age=0, no-transform”)
使用PHP上传文件时可以在文件上设置Cache-Control吗?
有没有办法为存储桶中的所有未来文件设置默认缓存控制(就像所有文件都是公共的 ACL)?
现在我只能使用 gsutil 将它设置为缓存控制,并且只能用于当前存储的文件。
这是我在找到你的问题后创建的一个例子。在下面我希望我上传的文件不被缓存:
$this->bucket->upload(
$content,
[
'name' => $name,
'metadata' => [
'cacheControl' => "public, max-age=0"
]
]
);
Run Code Online (Sandbox Code Playgroud)
我通过以下方法解决了这个问题:
upload
参考:https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/v0.122.0/storage/bucket ?method=upload以上所有内容都是有用的资源,但希望我的回答对于未来的“Google 员工”来说会更加简洁。
您可以在上传对象时设置 Cache-Control - 我建议您使用 gsutil -D 查看它生成的请求示例,然后将其转换为 PHP:
gsutil -D -h Cache-Control:"Cache-Control:private, max-age=0, no-transform" \
cp file gs://your-bucket/file
Run Code Online (Sandbox Code Playgroud)
无法为存储桶设置默认的 Cache-Control。