使用java从Google云存储检索图像时的\u BLOB\u键无效
我正在尝试使用谷歌云存储来存储我将在jsp文件中使用的图像。我已经创建了bucket,上传了一个图像(用于测试目的),并尝试从java类中检索指向它的Url。我一直收到错误信息使用java从Google云存储检索图像时的\u BLOB\u键无效,java,google-app-engine,google-cloud-storage,Java,Google App Engine,Google Cloud Storage,我正在尝试使用谷歌云存储来存储我将在jsp文件中使用的图像。我已经创建了bucket,上传了一个图像(用于测试目的),并尝试从java类中检索指向它的Url。我一直收到错误信息 HTTP ERROR 500 Problem accessing /. Reason: INVALID_BLOB_KEY: Could not read blob. Caused by: java.lang.IllegalArgumentException: INVALID_BLOB_KEY: Could
HTTP ERROR 500
Problem accessing /. Reason:
INVALID_BLOB_KEY: Could not read blob.
Caused by:
java.lang.IllegalArgumentException: INVALID_BLOB_KEY: Could not read blob.
at
com.google.appengine.api.images.ImagesServiceImpl.getServingUrl(ImagesServiceImpl.java:282)
我创造的水桶
我用来检索Url的代码(BUCKETNAME是一个带有bucket名称的静态字符串)
我曾试图公开这张照片,但没用。我已经看过了各种各样的答案,但我有点迷路了。任何帮助都将不胜感激我也面临同样的问题。对于未来的人,确保你已经做好了准备 公众。通过相同的方法,您还可以生成图像的缩略图和安全URL
public static String getImageURL(String inFilename) {
String key = "/gs/" + BUCKETNAME + "/" + inFilename;
ImagesService imagesService = ImagesServiceFactory.getImagesService();
ServingUrlOptions options = ServingUrlOptions.Builder
.withGoogleStorageFileName(key).imageSize(150).secureUrl(true);
String servingUrl = imagesService.getServingUrl(options);
return servingUrl;
}
我也遇到同样的问题。我使用Firebase存储来保存图像。你找到解决办法了吗?你也用过Firebase吗?当使用withGoogleStorageFileName()而不是BlobKey()时,它需要BlobKey,这似乎很奇怪。我使用了Google App Engine和java来实现这一点。我正在调查Firebase未来的项目。如果我看一下我最终得到的代码,我走的是另一条路:公共静态字符串getImageURL(字符串inFolder,字符串inFilename){String servingUrl=PATHNAME+BUCKETPATH+inFolder+inFilename;return servingUrl;}我还记得在本地主机上使用它时遇到了一些问题。您需要进行一些设置才能从LocalHost开始工作谢谢。过了一会儿,我意识到只有在本地运行时才出现错误,所以在没有本地调试的情况下解决了这个问题。
public static String getImageURL(String inFilename) {
String key = "/gs/" + BUCKETNAME + "/" + inFilename;
ImagesService imagesService = ImagesServiceFactory.getImagesService();
ServingUrlOptions options = ServingUrlOptions.Builder
.withGoogleStorageFileName(key).imageSize(150).secureUrl(true);
String servingUrl = imagesService.getServingUrl(options);
return servingUrl;
}