我更新了一张图片(来自PHP),但仍然下载了旧版本的图片.
如果我在GCS控制台上下载图像,我可以下载新版本的图像.但是,下面的url会返回旧版本.
https://storage.googleapis.com/[bucket name] /sample-image.png
似乎旧图像位于Google的边缘缓存中.
有些文章说我应该删除图像对象然后插入新的图像对象,以便清除边缘缓存.
有谁知道这个?
更新1
这是我在GCE上的PHP代码.
$obj = new \Google_Service_Storage_StorageObject();
$obj->setName($path . "/" . $name);
$client = new \Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(\Google_Service_Storage::DEVSTORAGE_FULL_CONTROL);
$storage = new \Google_Service_Storage($client);
$bucket = 'sample.com';
$binary = file_get_contents($_FILES['files']['tmp_name']);
$fileInfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $fileInfo->buffer($binary);
$storage->objects->insert($bucket, $obj, [
'name' => $path . "/" . $name,
'data' => $binary,
'uploadType' => 'media',
'mimeType' => $mimeType,
]);
Run Code Online (Sandbox Code Playgroud)
似乎只有这些参数才有效.我认为我不能设置任何缓存设置.
// Valid query parameters that work, but don't appear in discovery.
private $stackParameters = array(
'alt' => …Run Code Online (Sandbox Code Playgroud) 有人会认为只是替换与应用程序关联的存储桶中的内容会更新应用程序,但事实并非如此.
gsutil rsync -r gs://bucket-name ./app-name
Run Code Online (Sandbox Code Playgroud)
然后我进入项目目录并做了
gcloud app deploy
Run Code Online (Sandbox Code Playgroud)
昨天一切正常.但今天我做了更改,进入同一目录,你根本不能再做gcloud app deploy了.我将新的构建文件夹复制到存储桶中.但似乎缺少一步?我运行了与昨天相同的命令,认为rsync可能会将存储桶同步到应用程序,然后我又回到了应用程序并进行了另一次部署.但一切都没有改变.我错过了什么步骤?