- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是使用 Google Cloud API 之一,为此我需要将 GOOGLE_APPLICATION_CREDENTIALS 设置为 .json 文件。
我收到此错误消息以及有关如何解决该问题的链接:
The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
通过 cmd (set GOOGLE_APPLICATION_CREDENTIALS=C:\...\...\File.json
) 将变量设置为我刚刚创建的 .json 文件后,出现同样的错误继续出现。
我做错了什么?
<小时/>编辑:
我正在使用 Eclipse JEE。我想使用谷歌云视觉 API 从本地镜像中检测网络实体。首先使用 html 公式请求图像并将其发送到 servlet 类:(索引.html)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Tittle</title>
</head>
<body>
<h1>Welcome!</h1>
<h4>Upload an image: </h4>
<div id="searchDiv">
<form id="searchForm" action="webdetection" method="get" enctype="multipart/form-data">
<div><input type="file" name="image" accept=".JPG, .JPEG, .PNG8, .PNG24, .GIF, .BMP, .WEBP, .RAW, .ICO, .PDF, .TIFF" required>
</div>
<div><input type="submit" name="searchBtn" value="Aceptar">
</div>
</form>
</div>
</body>
</html>
这些是 servlet 及其映射:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<web:description></web:description>
<servlet-name>Web Detection</servlet-name>
<servlet-class>aiss.controller.google_vision.VisionServletController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Web Detection</servlet-name>
<url-pattern>/webdetection</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
这是云视觉的Servlet:
package aiss.controller.google_vision;
import java.io.IOException;
import java.io.PrintStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import aiss.model.CloudVision.DeteccionWeb;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
public class VisionServletController extends HttpServlet {
private static final Logger log = Logger.getLogger(VisionServletController.class.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
log.log(Level.FINE, "Processing GET request");
PrintStream ps = new PrintStream(resp.getOutputStream());
try {
resp.setContentType("text/plain");
DeteccionWeb.detectWebDetectionsGcs(req.getRequestURL().toString(),ps);
}catch(Exception e) {
ps.println(e.toString());//this prints the previous error message I show
}
}
}
以及 Servlet 重定向的 Web 检测类:(大部分导入没有被使用,但由于类正在被修改直到它起作用,我不知道我需要哪些类)
package aiss.model.CloudVision;
import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.vision.v1.AnnotateFileResponse;
import com.google.cloud.vision.v1.AnnotateFileResponse.Builder;
import com.google.cloud.vision.v1.AnnotateImageRequest;
import com.google.cloud.vision.v1.AnnotateImageResponse;
import com.google.cloud.vision.v1.AsyncAnnotateFileRequest;
import com.google.cloud.vision.v1.AsyncAnnotateFileResponse;
import com.google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse;
import com.google.cloud.vision.v1.BatchAnnotateImagesResponse;
import com.google.cloud.vision.v1.Block;
import com.google.cloud.vision.v1.ColorInfo;
import com.google.cloud.vision.v1.CropHint;
import com.google.cloud.vision.v1.CropHintsAnnotation;
import com.google.cloud.vision.v1.DominantColorsAnnotation;
import com.google.cloud.vision.v1.EntityAnnotation;
import com.google.cloud.vision.v1.FaceAnnotation;
import com.google.cloud.vision.v1.Feature;
import com.google.cloud.vision.v1.Feature.Type;
import com.google.cloud.vision.v1.GcsDestination;
import com.google.cloud.vision.v1.GcsSource;
import com.google.cloud.vision.v1.Image;
import com.google.cloud.vision.v1.ImageAnnotatorClient;
import com.google.cloud.vision.v1.ImageContext;
import com.google.cloud.vision.v1.ImageSource;
import com.google.cloud.vision.v1.InputConfig;
import com.google.cloud.vision.v1.LocalizedObjectAnnotation;
import com.google.cloud.vision.v1.LocationInfo;
import com.google.cloud.vision.v1.OperationMetadata;
import com.google.cloud.vision.v1.OutputConfig;
import com.google.cloud.vision.v1.Page;
import com.google.cloud.vision.v1.Paragraph;
import com.google.cloud.vision.v1.SafeSearchAnnotation;
import com.google.cloud.vision.v1.Symbol;
import com.google.cloud.vision.v1.TextAnnotation;
import com.google.cloud.vision.v1.WebDetection;
import com.google.cloud.vision.v1.WebDetection.WebEntity;
import com.google.cloud.vision.v1.WebDetection.WebImage;
import com.google.cloud.vision.v1.WebDetection.WebLabel;
import com.google.cloud.vision.v1.WebDetection.WebPage;
import com.google.cloud.vision.v1.WebDetectionParams;
import com.google.cloud.vision.v1.Word;
import com.google.protobuf.ByteString;
import com.google.protobuf.util.JsonFormat;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DeteccionWeb {
/**
* Detects whether the remote image on Google Cloud Storage has features you would want to
* moderate.
*
* @param gcsPath The path to the remote on Google Cloud Storage file to detect web annotations.
* @param out A {@link PrintStream} to write the results to.
* @throws Exception on errors while closing the client.
* @throws IOException on Input/Output errors.
*/
public static void detectWebDetectionsGcs(String gcsPath, PrintStream out) throws Exception,
IOException {
List<AnnotateImageRequest> requests = new ArrayList<>();
ImageSource imgSource = ImageSource.newBuilder().setImageUri(gcsPath).build();
Image img = Image.newBuilder().setSource(imgSource).build();
Feature feat = Feature.newBuilder().setType(Type.WEB_DETECTION).build();
AnnotateImageRequest request =
AnnotateImageRequest.newBuilder().addFeatures(feat).setImage(img).build();
requests.add(request);
try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {
BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);
List<AnnotateImageResponse> responses = response.getResponsesList();
for (AnnotateImageResponse res : responses) {
if (res.hasError()) {
out.printf("Error: %s\n", res.getError().getMessage());
return;
}
// Search the web for usages of the image. You could use these signals later
// for user input moderation or linking external references.
// For a full list of available annotations, see http://g.co/cloud/vision/docs
WebDetection annotation = res.getWebDetection();
out.println("Entity:Id:Score");
out.println("===============");
for (WebEntity entity : annotation.getWebEntitiesList()) {
out.println(entity.getDescription() + " : " + entity.getEntityId() + " : "
+ entity.getScore());
}
for (WebLabel label : annotation.getBestGuessLabelsList()) {
out.format("\nBest guess label: %s", label.getLabel());
}
}
}
}
}
我的主要怀疑是ImageSource.newBuilder().setImageUri(gcsPath)
,因为看起来云视觉API可能无法在不属于Google云存储的http/https url上工作。而且好像可以通过凭据解决,但是我无法通过。
最佳答案
如果您在 eclipse 中使用 Tomcat,以下线程应该会有所帮助 How to set GOOGLE_APPLICATION_CREDENTIALS for Google Compute Engine? 。
关于java - 如何定义 GOOGLE_APPLICATION_CREDENTIALS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61444732/
我正在开发一个需要使用 Google OAUTH 2 进行服务器到服务器应用程序的 CMS 模块。根据official manual需要设置一个带有 .json 键路径的环境变量,如下所示: pute
目前必须将 Google Cloud Platform 服务集成到我的应用程序中,但收到以下异常: **W/System.err: java.io.IOException: The Applicati
我的目标是使用 Google Cloud API 之一,为此我需要将 GOOGLE_APPLICATION_CREDENTIALS 设置为 .json 文件。 我收到此错误消息以及有关如何解决该问题的
我知道以前有人问过这种类型的问题,我已经解决了这个问题,但仍然面临这个问题。我用的是 this example .但是当我运行我的代码时,我遇到了以下异常 Failed to detect wheth
我们在一个谷歌服务帐户中有多个项目,每个项目都有单独的 GOOGLE_APPLICATION_CREDENTIALS .json 文件。根据基于语言环境的要求和 projectID我们必须使用相关的凭
在本地运行我的 java 项目会出现 GOOGLE_APPLICATION_CREDENTIALS 异常。 异常(exception)情况是: ConfigServletWebServerApplic
我有一个使用 Google Vision API 和 Google Video intelligence API 的 Go 应用程序。为了输入我的凭据,我设置了名为 GOOGLE_APPLICATIO
我尝试使用 Google Speach Api 我在身份验证方面遇到了大问题。 我关注了这个tutorial ,然后导出 GOOGLE_APPLICATION_CREDENTIALS,并使用 echo
我需要为我的应用程序使用“Google speech API”。为此,我安装了“谷歌云存储SDK”。我点击了这个链接“https://cloud.google.com/sdk/docs/quickst
当我在本地机器(Windows)上运行文档示例时,我设置了指向 json 文件的环境变量并且它可以工作。如果路径不正确,它会警告我也找不到该文件。 // Imports the Google Clou
我正在尝试使用 google 语音 API 将音频文件转换为文本,但在文档方面遇到了一些问题。我已启用语音 API 并创建了一个服务帐户文件。我还激活了服务帐户凭据。然后我编写了以下命令来使用我的服务
我想使用我的 key.json 在我的 docker 容器中设置 GOOGLE_APPLICATION_CREDENTIALS文件,但我不想将此文件复制到我的容器中。 最佳答案 docker run
我正在尝试使用 Spring 访问 Google 存储桶中的文件,最终目标是使用 MultiResourceItemReader 从存储桶中读取多个 XML 文件。当 XML 文件在我的本地机器(不是
我正在使用 gcloud 为 Django 编写自定义文件存储。 并且在寻找服务帐户 JSON 的 gloud 路径方面存在问题。我尝试使用 GOOGLE_APPLICATION_CREDENTIAL
google docs假设使用服务帐户的 JSON key 的路径导出环境变量 GOOGLE_APPLICATION_CREDENTIALS,gcloud 将使用它。我无法让它工作。 我的命令是: G
在我的 serverless.yml 文件中,我试图添加一个名为 GOOGLE_APPLICATION_CREDENTIALS 的环境变量,它指向我的服务帐户凭据 JSON 文件,但是当添加到无服务器
我正在我的 Mac 上使用 VSCode 在我的 Django 项目上测试 Google Cloud Pub/Sub,我在调试测试期间设置 GCP 环境变量时遇到了一些问题,特别是 GOOGLE_AP
我正在尝试在 java 中使用谷歌视觉库。这些步骤指定我需要设置我的身份验证凭据才能开始使用 this图书馆 。我能够从 API 控制台凭据页面生成我的 json 属性文件,并将其放置在资源文件夹中的
我正在使用 Laravel 5.2 并且我使用 php artisan config:cache正如官方文档中建议的那样,以提高速度。 如您所知,此命令使 .env 文件变量直接不可访问(您可以使用
在 kubernetes 的帮助下,我在 GKE 上运行日常作业,每天基于 kubernetes 中配置的 cron 启动一个新容器并尝试将一些数据插入 BigQuery。 我们的设置是我们在一个项目
我是一名优秀的程序员,十分优秀!