Spring Boot-2.3.10,Spring Cloud Gcp:1.2.8
我正在尝试从 GC 存储访问特定的图像模式 **(/resources/images/specific_folder/****)。为此,我编写了资源处理程序,如下所示:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("Setting the resource location {}", gcStorageLocation);
registry.addResourceHandler("/resources/images/specific_folder/**").addResourceLocations("gs:bucket_name/storage/images/specific_folder/").setCachePeriod(3600).resourceChain(true)
.addResolver(new GcStorageResolver());
}
GcStorageResolver.java 扩展 AbstractResourceResolver.java
@Override
protected Resource resolveResourceInternal(@Nullable HttpServletRequest request, String requestPath, List<? extends Resource> locations,
ResourceResolverChain chain) {
log.info("resolveResourceInternal called for request: {}, requestPath: {}", request.getRequestURL(), requestPath);
return getResource(requestPath, request, locations);
}
我验证了一个有效的 GoogleStorageResource 与凭据一起返回。但是在弹簧链的某个地方,我收到以下错误:
2021-06-25 15:40:23.366 错误 4676 --- [nio-8080-exec-1] oaccC[.[.[.[dispatcherServlet] 175:Servlet.service() 用于 servlet [dispatcherServlet] 的上下文与路径[] 抛出异常 [请求处理失败;嵌套异常是 com.google.cloud.storage.StorageException:解析令牌刷新响应时出错。未找到预期值 access_token。] 根本原因
java.io.IOException:解析令牌刷新响应时出错。未找到预期值 access_token。在 com.google.auth.oauth2.OAuth2Utils.validateString(OAuth2Utils.java:113) ~[google-auth-library-oauth2-http-0.22.1.jar:?] 在 com.google.auth.oauth2.ServiceAccountCredentials。 refreshAccessToken(ServiceAccountCredentials.java:449) ~[google-auth-library-oauth2-http-0.22.1.jar:?] at com.google.auth.oauth2.OAuth2Credentials.refresh(OAuth2Credentials.java:157) ~[google -auth-library-oauth2-http-0.22.1.jar:?] 在 com.google.auth.oauth2.OAuth2Credentials.getRequestMetadata(OAuth2Credentials.java:145) ~[google-auth-library-oauth2-http-0.22。 1.jar:?] 在 com.google.auth.oauth2.ServiceAccountCredentials.getRequestMetadata(ServiceAccountCredentials.java:603) ~[google-auth-library-oauth2-http-0.22.1.jar:?] 在 com.google。 auth.http.HttpCredentialsAdapter。
不知道这里发生了什么。任何指针?