Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 从后端使Google云CDN缓存无效_Google Api_Invalidation_Google Cloud Cdn - Fatal编程技术网

Google api 从后端使Google云CDN缓存无效

Google api 从后端使Google云CDN缓存无效,google-api,invalidation,google-cloud-cdn,Google Api,Invalidation,Google Cloud Cdn,经过几天的研究和阅读文档,我几乎可以肯定这几乎是不可能的,但我仍然想问: 目标是在不使用该CDN的第三方后端上按需(由于标题更改)使GCloud CDN中的所有缓存内容无效。使用gsuite可以通过使用以下命令来实现: gcloud compute url-maps invalidate-cdn-cache web --path '/*' --async 但问题是,这个命令要求我们使用客户端的凭据通过浏览器登录google帐户,这使得它毫无价值 可悲的是,谷歌似乎为其其他服务提供了相当丰富的A

经过几天的研究和阅读文档,我几乎可以肯定这几乎是不可能的,但我仍然想问:

目标是在不使用该CDN的第三方后端上按需(由于标题更改)使GCloud CDN中的所有缓存内容无效。使用
gsuite
可以通过使用以下命令来实现:

gcloud compute url-maps invalidate-cdn-cache web --path '/*' --async
但问题是,这个命令要求我们使用客户端的凭据通过浏览器登录google帐户,这使得它毫无价值

可悲的是,谷歌似乎为其其他服务提供了相当丰富的API,但对于CDN,却没有API:(


这样做的目的是接受用户的凭据,并使用它们使缓存失效。这可能吗?

因此,我错误地认为
不可能
。我找到了相应的REST API方法():

下面是一个使用Ruby的示例代码:


这为我指明了正确的方向。我不明白他们为什么在“计算”库中放置CDN缓存无效。似乎拥有CDN库会有逻辑意义;甚至是存储!?谢谢!我发现错误无效:字段“resource.path”:“”的值无效。路径必须以/开头。知道如何解决这个问题吗?@nattf奇怪的是,如果我想使路径/主页无效,我该如何在代码中指定它?
POST https://www.googleapis.com/compute/v1/projects/{project}/global/urlMaps/{resourceId}/invalidateCache
require 'google/apis/compute_v1'

service = Google::Apis::ComputeV1::ComputeService.new
service.authorization =
  Google::Auth::ServiceAccountCredentials
    .make_creds(
      json_key_io: File.open('/path/to/credentials.json'),
      scope:       [Google::Apis::ComputeV1::AUTH_COMPUTE]
    )
service.invalidate_url_map_cache(
   'some-gcloud-project-id',
   'some-url-map',
   nil,
   request_id: SecureRandom.uuid
)