在本文中,您将会了解到关于使用Java中的JSON密钥访问GCS并得到Method抛出“com.google.cloud.storage.StorageException”异常的新资讯,并给出一些关于
在本文中,您将会了解到关于使用 Java 中的 JSON 密钥访问 GCS 并得到 Method 抛出“com.google.cloud.storage.StorageException”异常的新资讯,并给出一些关于AccessDeniedAccess 被拒绝匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限、com.amazonaws.mobileconnectors.cognito.exceptions.DataStorageException的实例源码、GCS-将文本文件从Google Cloud Storage直接读入python、Google Cloud Code 的 Cloud Run 扩展将 Docker 镜像存储在 Cloud Storage 而不是 Artifact Registry的实用技巧。
本文目录一览:- 使用 Java 中的 JSON 密钥访问 GCS 并得到 Method 抛出“com.google.cloud.storage.StorageException”异常
- AccessDeniedAccess 被拒绝匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限
- com.amazonaws.mobileconnectors.cognito.exceptions.DataStorageException的实例源码
- GCS-将文本文件从Google Cloud Storage直接读入python
- Google Cloud Code 的 Cloud Run 扩展将 Docker 镜像存储在 Cloud Storage 而不是 Artifact Registry
使用 Java 中的 JSON 密钥访问 GCS 并得到 Method 抛出“com.google.cloud.storage.StorageException”异常
如何解决使用 Java 中的 JSON 密钥访问 GCS 并得到 Method 抛出“com.google.cloud.storage.StorageException”异常?
我试图用 Java 将文件上传到 GCS。
以下是我创建 Storage 对象的方式:
StorageOptions.Builder storageOptions = StorageOptions.newBuilder().setProjectId(AppProperties.get(GCS_PROJECT_ID));
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream(keyFilePath)).createScoped(Lists.newArrayList("https://www.googleapis.com/auth/cloud-platform"));
Storage storage = storageOptions.setCredentials(credentials).build().getService();
当我尝试执行 storage.create(blobInfo,Files.readAllBytes(Paths.get(dataFolder + "/" + fileName)));
时,出现以下错误:
com.google.cloud.storage.StorageException: Unexpected error refreshing access token
at com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:233)
at com.google.cloud.storage.spi.v1.HttpStorageRpc.create(HttpStorageRpc.java:314)
at com.google.cloud.storage.StorageImpl$3.call(StorageImpl.java:221)
at com.google.cloud.storage.StorageImpl$3.call(StorageImpl.java:218)
at com.google.api.gax.retrying.DirectretryingExecutor.submit(DirectretryingExecutor.java:105)
at com.google.cloud.RetryHelper.run(RetryHelper.java:76)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)
at com.google.cloud.storage.StorageImpl.internalCreate(StorageImpl.java:217)
at com.google.cloud.storage.StorageImpl.create(StorageImpl.java:171)
Caused by: java.io.IOException: Unexpected error refreshing access token
at com.google.auth.oauth2.OAuth2Credentials.unwrapDirectFuture(OAuth2Credentials.java:309)
at com.google.auth.oauth2.OAuth2Credentials.getRequestMetadata(OAuth2Credentials.java:156)
at com.google.auth.oauth2.ServiceAccountCredentials.getRequestMetadata(ServiceAccountCredentials.java:962)
at com.google.auth.http.HttpCredentialsAdapter.initialize(HttpCredentialsAdapter.java:96)
at com.google.cloud.http.HttpTransportOptions$1.initialize(HttpTransportOptions.java:159)
at com.google.cloud.http.CensusHttpModule$CensusHttpRequestinitializer.initialize(CensusHttpModule.java:109)
at com.google.api.client.http.HttpRequestFactory.buildrequest(HttpRequestFactory.java:91)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:521)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:455)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:565)
at com.google.cloud.storage.spi.v1.HttpStorageRpc.create(HttpStorageRpc.java:311)
... 14 more
Caused by: java.lang.NoSuchMethodError: com.google.common.io.ByteStreams.exhaust(Ljava/io/InputStream;)J
at com.google.api.client.http.ConsumingInputStream.close(ConsumingInputStream.java:40)
at java.util.zip.InflaterInputStream.close(InflaterInputStream.java:227)
at java.util.zip.GZIPInputStream.close(GZIPInputStream.java:136)
at sun.nio.cs.StreamDecoder.implClose(StreamDecoder.java:378)
at sun.nio.cs.StreamDecoder.close(StreamDecoder.java:193)
at java.io.InputStreamReader.close(InputStreamReader.java:199)
at com.google.gson.stream.JsonReader.close(JsonReader.java:1224)
at com.google.api.client.json.gson.GsonParser.close(GsonParser.java:53)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:363)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:335)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:79)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:73)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:456)
at com.google.auth.oauth2.ServiceAccountCredentials.refreshAccesstoken(ServiceAccountCredentials.java:618)
at com.google.auth.oauth2.OAuth2Credentials$1.call(OAuth2Credentials.java:243)
at com.google.auth.oauth2.OAuth2Credentials$1.call(OAuth2Credentials.java:240)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)
at com.google.auth.oauth2.OAuth2Credentials$AsyncRefreshResult.executeIfNew(OAuth2Credentials.java:567)
at com.google.auth.oauth2.OAuth2Credentials.asyncFetch(OAuth2Credentials.java:206)
... 24 more
我验证了密钥文件是有效的,因为相同的密钥文件在气流中完美地工作以在 Python 中上传文件
pom 如下:
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>20.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这只发生在 Intellij 中。我尝试在命令行上直接执行 jar,它对我有用
有人可以帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
AccessDeniedAccess 被拒绝匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限
如何解决AccessDeniedAccess 被拒绝匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限?
我正在尝试通过 Google VR 加入 360 度全景图像,但出现以下错误:
AccessDeniedAccess 被拒绝。匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限。
我的代码:
<iframe src="https://storage.googleapis.com/vrview/2.0/embed?image=https://terrafrost.sfo2.digitaloceanspaces.com/tannehill/DJI_0896.JPG&is_stereo=true">
</iframe>
Google VR 是否仅适用于存储在 Google Cloud Storage 上的图像/视频?当数据没有存储在 Google Cloud Storage 中时,有没有办法让它工作?
JS 小提琴:https://jsfiddle.net/csv79yL4/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
com.amazonaws.mobileconnectors.cognito.exceptions.DataStorageException的实例源码
@Override public void onFailure(DataStorageException dse) { String message = String.format("Got %s - %s while synchronizing dataset...",dse.getClass().getSimpleName(),dse.getMessage()); Log.e(TAG,message,dse); super.onFailure(dse); }
@Override public void onFailure(final DataStorageException dse) { callingActivity.runOnUiThread(new Runnable() { @Override public void run() { dialog.dismiss(); Log.e("Sync","Failed: " + dse); Toast.makeText(callingActivity,"Sync Failed due to\n" + dse.getMessage(),Toast.LENGTH_LONG) .show(); dse.printstacktrace(); } }); }
@Override public void onFailure(final DataStorageException dse) { callingActivity.runOnUiThread(new Runnable() { @Override public void run() { dialog.dismiss(); Log.e("Sync",Toast.LENGTH_LONG) .show(); dse.printstacktrace(); } }); }
GCS-将文本文件从Google Cloud Storage直接读入python
我现在有点傻。我一直在阅读大量文档问题,但我做对了。
我在Google Cloud Storage上有一个文件。它在存储桶“ test_bucket”中。在此存储桶中,有一个文件夹“
temp_files_folder”,其中包含两个文件,一个名为“ test.txt”的.txt文件和一个名为“
test.csv”的.csv文件。这两个文件只是因为我尝试同时使用这两个文件,但是两种方法的结果都是相同的。
文件中的内容是
hej
san
我希望将其读入python的方式与在本地使用
textfile = open("/file_path/test.txt",'r')
times = textfile.read().splitlines()
textfile.close()
print(times)
这使
['hej','san']
我尝试使用
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('test_bucket')
blob = bucket.get_blob('temp_files_folder/test.txt')
print(blob.download_as_string)
但是它给出了输出
<bound method Blob.download_as_string of <Blob: test_bucket,temp_files_folder/test.txt>>
如何获取文件中的实际字符串?
Google Cloud Code 的 Cloud Run 扩展将 Docker 镜像存储在 Cloud Storage 而不是 Artifact Registry
如何解决Google Cloud Code 的 Cloud Run 扩展将 Docker 镜像存储在 Cloud Storage 而不是 Artifact Registry?
为什么当我使用 Visual Studio Code 扩展“Cloud Code”来部署 Cloud Run 服务时,它似乎将图像内容存储在 Cloud Storage(通过 Container Registry)中。
我可以让它将图像存储在 Google Cloud Artifact Registry 中吗?
解决方法
我刚刚尝试了这个场景,它对我有用!遵循这些步骤应该可以帮助您前进。
- 在 https://console.cloud.google.com/artifacts 创建工件注册表存储库,并在您的客户端上设置 docker auth 以使用 gcloud 对存储库进行身份验证。您可以找到执行此操作的详细步骤 here。
- 在 Cloud Code 中部署到 Cloud Run 时,您会发现它默认使用 Container Registry 存储库作为“容器映像 URL”,但您可以在此处轻松使用工件注册表存储库。在这里,您可以粘贴您在上一步中创建的存储库名称,并附加一个图像名称。 Here''s a screenshot 我刚刚测试的示例。
我们今天的关于使用 Java 中的 JSON 密钥访问 GCS 并得到 Method 抛出“com.google.cloud.storage.StorageException”异常的分享已经告一段落,感谢您的关注,如果您想了解更多关于AccessDeniedAccess 被拒绝匿名调用者没有 storage.objects.get 访问 Google Cloud Storage 对象的权限、com.amazonaws.mobileconnectors.cognito.exceptions.DataStorageException的实例源码、GCS-将文本文件从Google Cloud Storage直接读入python、Google Cloud Code 的 Cloud Run 扩展将 Docker 镜像存储在 Cloud Storage 而不是 Artifact Registry的相关信息,请在本站查询。
本文标签: